아주 가끔가다 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에서 동시에 사용가능한 바이너리를 만드니까 안될 것 같지는 않지만….
참고문헌
- http://blog.omega-prime.co.uk/?p=102