2016-04-30 103 views
0

我有一个使用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在64位Mac OS X上构建和安装Boost 1.60,并在32位上安装El Capitan

的要求已经改变,我要链接/使用升压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'

回答