如何构建增强1.45通用二进制文件?在豹/雪豹?
答案 0 :(得分:11)
要在OSX 10.6上构建4路通用boost静态二进制文件,我会执行以下操作:
从推特网站下载推文。
将存档和cd
解压缩到boost_x_xx_x
文件夹中(其中x_xx_x
是您正在使用的提升版本。)
执行命令
./bootstrap.sh
然后
# The name of the Boost.Jam program changed from "bjam" to "b2" in Boost 1.47.0
# Replace "b2" with "bjam" if you are compiling a version <= 1.46.1
./b2 macosx-version=10.6 macosx-version-min=10.4 architecture=combined threading=multi link=static address-model=32_64
这将编译除Boost.MPI之外的所有内容(需要--with-mpi
选项)。构建产品放在./stage
更新:如果您已安装XCode 4,则必须执行额外的步骤。 XCode 4没有能够定位PowerPC的编译器或库。不幸的是,XCode 4附带的编译器成为Boost使用的默认编译器。要强制使用XCode 3附带的编译器,您必须执行额外的步骤。请注意,如果XCode 3不在您的系统上,则必须安装它。
运行./bootstrap.sh
后,在运行b2
之前,请打开:
./tools/build/v2/user-config.jam
将以下行添加到该文件中。这指示boost使用XCode 3中的g ++ - 4.2:
using darwin : : /Developer-old/usr/bin/g++-4.2 ;
答案 1 :(得分:1)
您正在尝试构建哪些库?它在这里说(http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.html):
大多数Boost库都是仅限标题的: 它们完全由头文件组成 包含模板和内联 功能,并要求不 单独编译的库二进制文件 或链接时的特殊处理。
您需要构建的那个是:
- Boost.Filesystem的
- Boost.GraphParallel
- 了Boost.Iostreams
- Boost.MPI
- Boost.ProgramOptions
- Boost.Python
- Boost.Regex
- Boost.Serialization
- Boost.Signals
- Boost.System
- Boost.Thread
- Boost.Wave
那你要建哪个?
答案 2 :(得分:0)
要在Tiger下构建通用二进制文件,我在主目录($HOME
)中创建了user-config.jam
file:
using darwin : : : <compileflags>"-arch ppc -arch i386 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" ;
然后我像往常一样用Jam制作Boost。可能这应该适用于较旧的Mac OS X版本。
另一种方法是使用MacPorts,但在这种情况下,所有Boost依赖项都必须重建为通用二进制文件,这并不总是可行的(我在Tiger上已经两次但是失败了)。
对于这两种情况,您需要在XCode上安装MacOSX10.4u.sdk。
<强> [编辑] 强>
要构建三种体系结构,您最好阅读answer类似的问题。简而言之,user-config.jam
中的构建选项取决于您和目标Mac OS X版本。因此,您最好根据上述答案尝试各种变体。