Multi-Architecture Compiling

아주 가끔가다 32 bit와 64 bit에서 동시에 사용가능한 라이브러리를 컴파일해야 할 필요가 있다. 이 때에,

  • CFLAGS+=”-arch i386 -arch x86_64″
  • CXXFLAGS+=”-arch i386 -arch x86_64″
  • LDFLAGS+=”-arch i386 -arch x86_64″

위 세개를 컴파일과 링크시에 잘 넣어주면 된다. 물론 make할 때 넣어줘도 된다.

컴파일 중간에

  • -E, -S, -save-temps and -M options are not allowed with multiple -arch flags

이런 에러가 난다면, configure 시에

  • –disable-dependency-tracking

옵션을 추가해서 하면 에러가 안난다.

참고:
사실 이게 라이브러리를 벗어나서 실행파일에도 되는지는 확실히 모르겠다. Mac에서 Xcode를 이용해서는 32 bit와 64 bit에서 동시에 사용가능한 바이너리를 만드니까 안될 것 같지는 않지만….

참고문헌

  1. http://blog.omega-prime.co.uk/?p=102

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.