在64位Mac OS X El Capitan上以32位构建和安装Boost 1.60

时间:2016-04-30 14:42:45

标签: c++ macos boost x86

我有一个使用32位增强库(1.48)的应用程序。 1.48版本的boost预先构建在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_64

要求已经改变,我想将boost 1.60与C ++ 11和32位链接/使用。 我已经下载了1.60 boost并修改了bootstrap.sh以包含特定于应用程序的lib和include目录。

我正在运行以下命令

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

我收到以下错误 error: unknown target CPU 'i686'表示所有文件。 如果我安装了默认值,那么我就不会获得32位版本的boost库,并且应用程序无法链接。

我如何摆脱这个错误?我正在构建的机器是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'

1 个答案:

答案 0 :(得分:0)