2016-04-30 9 views
0

32ビット・ブースト・ライブラリ(1.48)を使用するアプリケーションがあります。 boostの1.48バージョンは、32ビットプラットフォーム上にあらかじめ構築され、古いC++標準を使用していました。たとえばfile libboost_wserialization.dylibについては が
libboost_wserialization.dylib: Mach-O universal binary with 2 architectures libboost_wserialization.dylib (for architecture i386): Mach-O dynamically linked shared library i386 libboost_wserialization.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_6464ビットMac OS Xのエル・キャピタンで32ビットでBoost 1.60をビルドしてインストールする

を与える要件が変更されていると私はC++ 11と32ビットでブースト1.60を使用/リンクしたいです。 私は1.60のブーストをダウンロードし、bootstrap.shを修正して、アプリケーション固有のlibとインクルードディレクトリを追加しました。

私は、次のコマンド

./b2 cxxflags="-std=c++0x -stdlib=libc++" linkflags="-stdlib=libc++" address-model=32 architecture=x86 install

私はすべてのファイルのために次のエラー error: unknown target CPU 'i686'を取得を実行しています。 デフォルトをインストールすると、32ビットバージョンのブーストライブラリが得られず、アプリケーションがリンクに失敗します。

このエラーを取り除く方法を教えてください。私が構築しているマシンはMac OS X El capitan 64ビットです。

全体のエラーが

"clang++" -x c++ -std=c++0x -stdlib=libc++ -O3 -O3 -Wno-inline -Wall -march=i686 -DBOOST_ALL_NO_LIB=1 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"." -I"libs/math/src/tr1" -c -o "bin.v2/libs/math/build/clang-darwin-4.2.1/release/address-model-32/threading-multi/atanh.o" "libs/math/build/../src/tr1/atanh.cpp" 

...failed clang-darwin.compile.c++ bin.v2/libs/math/build/clang-darwin-4.2.1/release/address-model-32/threading-multi/atanh.o... clang-darwin.compile.c++ bin.v2/libs/math/build/clang-darwin-4.2.1/release/address-model-32/threading-multi/cbrt.o error: unknown target CPU 'i686'

答えて

0

では、アドレス・モデル= 64で試してみてください。

さらに詳しい情報:http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.reference.tools.compiler.darwin

+0

いいえそれはまだ、私は推測するだけで32ビットを構築する私のアプリケーションのリンクはまだ失敗。 'libboost_wserialization.dylib:Mach-O 64ビット動的リンク共有ライブラリx86_64' –

+0

古いバージョンのXCodeを使用することで問題が解決しました。私はXCode 6.4を使用していました。私はXCode 5.4で別のマシンを使用し、i386アーチでdylibを構築することができました。 –