我有建築物32/64合併版本太問題,最終使出分別建立兩個(我不得不添加的CXX標記「-arch i386」到32位版本)並使用lipo來合併它們。例如:
./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
既然我仍然有64位二進制文件(當我請32位)之前,我補充說:「-arch i386的」,我懷疑,在那裏與bjam的/ B2的生成腳本問題的32位二進制蘋果系統。
我相信你需要明確指定'toolset = darwin';然而,作爲一個健全性檢查,運行相同的'b2'調用加上'-n'參數併發佈一個如何調用編譯器的樣本(具體來說,傳遞哪些參數)。 – ildjarn
嗯-n沒有做任何事,它應該做什麼?達爾文不會改變任何東西(我很確定它是osx的默認選項),謝謝! – moka
'-n'告訴bjam/b2輸出它將執行的編譯器/鏈接器命令,而不實際執行它們。你是說沒有計劃輸出嗎? – ildjarn