5

私は夢中になっています...私は現在、osxユキヒョウのプロジェクトのブーストを1.44.0から1.47.0にアップグレードしようとしています。-次のコマンドでビルドしたいと思います。

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

ここで、i386とx86_64をサポートする静的ファットビルドが提供されると期待しています。とにかく、結果のライブラリをクエリすると、それらはすべてx86_64であるため、明らかにそうではありませんlipo -info。-これを解決するにはどうすればよいですか?ビルドスクリプトが壊れている可能性がありますか?

4

6 に答える 6

2

このビルドを使用して動作するようにしました:

./b2 link=static threading=multi toolset=darwin cxxflags="-arch i386 -arch x86_64" macosx-version=10.6 ステージ

于 2011-08-17T15:08:53.203 に答える
2

これが私のために働いたものです。

./b2 link=static threading=multi toolset=darwin cxxflags="-arch i386 -arch x86_64" target-os=darwin address-model=32_64 stage
于 2012-07-11T21:06:43.717 に答える
1

多くのオプションをすべて試しましたが、32 ビットと 64 ビットの両方のアーキテクチャでユニバーサル バイナリを生成したものはありませんでした。最終的に私のために働いたのはこれでした:

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

これは、Mountain Lion のブースト 1.51.0 です。

于 2012-10-18T19:01:23.947 に答える
0

32/64 結合バージョンのビルドにも問題があり、最終的には 2 つを別々にビルドし (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

「-arch i386」を追加する前に、(32 ビットを要求したときに) 64 ビットのバイナリをまだ取得していたことを考えると、macos での 32 ビットのバイナリに対する bjam/b2 のビルド スクリプトに問題があると思われます。

于 2014-04-08T19:36:00.007 に答える