【发布时间】:2013-11-22 17:56:29
【问题描述】:
我正在尝试将 Boost 库编译为通用二进制文件(即包含 i386 和 x86_64 架构的构建的“胖”文件)。
上网和SO 我组装了以下说明。
下载提升(例如来自http://www.boost.org/users/download/)
在下载的文件夹中,输入
./bootstrap.sh(或者,在我的情况下是./bootstrap.sh --with-libraries=thread,因为我只需要线程库)输入
./b2 install cxxflags="-arch i386 -arch x86"
这些步骤将 Boost 线程库安装到 /usr/local/lib/(其标准位置)。生成的静态库是一个通用二进制文件。到目前为止,一切顺利。
$ lipo -i /usr/local/lib/libboost_thread.a
Architectures in the fat file: /usr/local/lib/libboost_thread.a are: i386 x86_64
不过,动态库似乎只针对 x86_64 编译。
$ lipo -i /usr/local/lib/libboost_thread.dylib
Non-fat file: /usr/local/lib/libboost_thread.dylib is architecture: x86_64
我希望 .dylib 也是通用的。有谁知道我如何为 i386 和 x86_64 编译它?
【问题讨论】:
标签: c++ boost osx-mountain-lion boost-thread universal-binary