2011-08-02 2 views
5

나는 미치겠습니다 ... 저는 현재 OSX Snow Leopard에서 1.44.0에서 1.47.0으로 프로젝트를 업그레이드하려고합니다 .- 필요합니다. 다음 명령을 구축하기 위해 : 나는 그것이 나에게 x86_64에 같은 i386을 aswell을 지원하는 정적 지방 빌드를 제공한다는 기대OSX Snow Leopard : 32 비트 및 64 비트에 대해 1.47.0을 빌드하십시오.

./b2 macosx-version=10.6 link=static address-model=32_64 threading=multi stage 

. 어쨌든, 분명히하지 않습니다. 왜냐하면 결과 라이브러리의 lipo -info을 쿼리하면 모두 x86_64입니다.이 문제를 해결하려면 어떻게해야합니까? 빌드 스크립트가 손상되었을 수 있습니까?

+0

명시 적으로 'toolset = darwin'을 지정해야한다고 생각합니다. 그러나 온전한 검사로서, 같은'b2' 호출과'-n' 인자를 더하고 컴파일러가 어떻게 호출되는지에 대한 샘플 (특히 어떤 인자가 전달되는지)을 게시하십시오. – ildjarn

+0

흠 -n은 아무 것도하지 않습니다. 어떻게해야할까요? Darwin은 아무 것도 변경하지 않습니다. (저는 그것이 어쨌든 osx의 기본 선택임을 확신합니다) 감사합니다! – moka

+0

'-n'은 실제로 실행하지 않고 컴파일러/링커 명령을 출력하도록 bjam/b2에 지시합니다. 프로그램 출력이 전혀 없다는 말입니까? – ildjarn

답변

2

나는이 빌드를 사용하여 작업 할 그것을 가지고 :

./b2 링크 = 정적 스레딩 = 멀티 툴 세트 = 다윈 CXXFLAGS의 = "- 아치 I386 -arch x86_64에"에서라도 버전 = 10.6 단계

2

이것이 나를 위해 일한 것입니다.

./b2 link=static threading=multi toolset=darwin cxxflags="-arch i386 -arch x86_64" target-os=darwin address-model=32_64 stage 
1

나에서라도 10.6에 지방 바이너리 건물 부스트 1.49을 얻을 수있는 유일한 방법은 매개 변수 구조 = x86 및 주소 모델 = 32_64을 모두 사용하는 것이 었습니다.

1

나는 많은 옵션을 시도했지만 둘 다 32 비트 및 64 비트 아키텍처의 범용 바이너리를 생산하지 못했습니다. 마침내 나를 위해 일한 것은 다음과 같습니다.

./b2 threading=multi toolset=darwin architecture=x86 target-os=darwin address-model=32_64 stage 

이것은 Mountain Lion의 부스트 1.51.0입니다.

0

당신은 예를 들어, 옵션 "아키텍처"를 추가해야합니다

./b2 macosx-version=10.6 link=static address-model=32_64 architecture=combined threading=multi stage 
0

을 내가 따로 둘을 구축 의지 궁극적으로 너무 32/64 통합 버전을 구축하는 문제가 발생하고있어 (내가 CXX를 추가했다 플래그 "-arch i386"을 32 비트 빌드에 추가) lipo를 사용하여 결합합니다. 예 : 나는 "-arch I386"를 추가하기 전에

./bjam link=static release install address-model=32 --prefix=$prefix_dir-x86" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors -arch i386" -s NO_BZIP2=1 -s NO_ZLIB=1 
./bjam link=static release install address-model=64 --prefix=$prefix_dir-x64" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors" -s NO_BZIP2=1 -s NO_ZLIB=1 
lipo $prefix_dir-x86/lib/libboost_python-2_7.a $prefix_dir-x64/lib/libboost_python-2_7.a -output $prefix_dir-universal/libboost_python-2_7.a -create 

(나는 32 비트를 요청하는 경우) 난 아직도 64 개 비트 바이너리를 가지고 있음을 감안할 때, 나는 32 비트 바이너리에 대한 bjam/B2의 빌드 스크립트에 문제가 있다고 의심 맥 OS.