所以我知道 boost 库主要是仅头文件,但也有一些需要编译,例如 Boost.Thread。在达尔文,我如何编译这些并传递 -m32 标志,以便它们可以编译成 32 位 (i386) 二进制文件?有一个我从未听说过的 Jamroot 东西,我完全不确定从哪里开始。
澄清:我不是在问如何编译带有 -m32 标志的程序并使用 boost 库。我在问如何使用 -m32 标志自己编译 Boost 库。
要指定要编译的架构,请architecture
在调用 b2 时指定功能。
要指定尚无内置功能的编译器选项,请cxxflags
在调用 b2 时指定该功能。
要指定还没有内置功能的链接器选项,请linkflags
在调用 b2 时指定该功能。
所有这些都列在Boost.Build 文档中。
据我了解,如果我正确阅读了文档,构建特定 boost 架构的方法是使用 b2 的“address-model=xx”选项。
例子:
b2 install toolSET=msvc-9.0 link=shared variant=release address-model=64
或者
b2 install toolSET=msvc-9.0 link=shared variant=release address-model=32
希望有帮助。
问候,
-RMW混沌
编辑:在这里找到另一个提供相同答案的 SO 线程。