2011-08-02 29 views
5

Tôi đang phát điên ... Tôi hiện đang cố nâng cấp cho dự án của mình từ 1.44.0 lên 1.47.0 trên báo tuyết osx. Tôi muốn để xây dựng nó bằng lệnh sau:OSX Snow Leopard: Xây dựng tăng 1.47.0 cho 32 và 64 bit

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

nơi tôi mong đợi nó cung cấp cho tôi một bản dựng chất béo tĩnh hỗ trợ i386 cũng như x86_64. Dù sao, nó rõ ràng là không, vì nếu tôi truy vấn lipo -info của libs kết quả, tất cả chúng đều là x86_64.- Tôi có thể làm gì để giải quyết vấn đề này? Nó có thể là kịch bản xây dựng bị hỏng?

+0

Tôi tin rằng bạn cần chỉ định rõ ràng 'toolset = darwin'; Tuy nhiên, như một kiểm tra sự tỉnh táo, chạy cùng một lời gọi 'b2' cộng với đối số' -n' và gửi một mẫu trình biên dịch đang được gọi ra như thế nào (cụ thể là, đối số nào đang được truyền). – ildjarn

+0

hmm -n không làm gì cả, nó phải làm gì? Các darwin không thay đổi bất cứ điều gì (tôi khá chắc chắn rằng nó là sự lựa chọn mặc định trên anyways osx) cảm ơn! – moka

+0

'-n' yêu cầu bjam/b2 xuất ra các lệnh biên dịch/trình liên kết mà nó sẽ thực hiện, mà không thực sự thực thi chúng. Bạn có nói rằng không có đầu ra chương trình nào cả? – ildjarn

Trả lời

2

tôi đã nhận nó để làm việc bằng cách sử dụng build này:

./b2 link = luồng tĩnh = đa công cụ = darwin CXXFLAGS = "- i386 vòm -arch x86_64" macosx-version = 10,6 giai đoạn

2

Đây là những gì làm việc cho tôi.

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

Cách duy nhất để tôi nhận được các tệp nhị phân chất béo xây dựng Boost 1.49 trên MacOSX 10.6 là sử dụng cả kiến ​​trúc thông số = x86 và address-model = 32_64.

1

Tôi đã thử tất cả các tùy chọn và không có tùy chọn nào trong số chúng tạo ra một hệ nhị phân chung với cả kiến ​​trúc 32 và 64 bit. Người cuối cùng đã làm việc cho tôi là người này:

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

Đây là tăng 1.51.0 trên sư tử núi.

0

Bạn nên thêm tùy chọn "kiến trúc", ví dụ:

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

tôi đang gặp vấn đề xây dựng 32/64 phiên bản kết hợp quá, và cuối cùng đành để xây dựng hai riêng (tôi đã có thêm các cxx gắn cờ "-arch i386" vào bản dựng 32 bit) và sử dụng lipo để kết hợp chúng. Ví dụ:

./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 

Cho rằng tôi vẫn nhận được mã nhị phân 64 bit (khi tôi yêu cầu 32 bit) trước khi tôi nói thêm "i386 -arch", tôi nghi ngờ rằng có một vấn đề với bjam/b2 của xây dựng kịch bản cho mã nhị phân 32 bit trên hệ điều hành Mac.

Các vấn đề liên quan