将编译器标志传递给需要编译的 boost 库(例如 Thread)
所以我知道 boost 库主要是头文件,但有一些需要编译,例如 Boost.Thread。在 Darwin 中,如何编译它们并传递 -m32 标志,以便将它们编译成 32 位(i386)二进制文件?有一种我从未听说过的 Jamroot 东西,而且我根本不知道从哪里开始。
澄清:我不是问如何使用 -m32 标志编译程序并使用 boost 库。我问如何使用 -m32 标志编译 Boost 库本身。
So I know that the boost libraries are primarily header-only but there are a few which require compilation, for example Boost.Thread. In Darwin, how do I compile these and pass the -m32 flag so they can be compiled into a 32-bit (i386) binary? There's this Jamroot thing which I've never heard of and I am not sure at all where to start.
Clarification: I'm not asking how to compile a program with -m32 flag and use the boost libraries. I'm asking how to compile the Boost libraries themselves with the -m32 flag.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要指定要编译的架构,请在调用 b2 时指定
architecture
功能。要指定尚未具有内置功能的编译器选项,请在调用 b2 时指定
cxxflags
功能。要指定尚未具有内置功能的链接器选项,请在调用 b2 时指定
linkflags
功能。所有这些都列在 Boost.Build 文档。
To specify what architecture to compile for, specify the
architecture
feature when invoking b2.To specify compiler options that don't already have built-in features, specify the
cxxflags
feature when invoking b2.To specify linker options that don't already have built-in features, specify the
linkflags
feature when invoking b2.All of these are listed in the Boost.Build docs.
据我了解,如果我正确阅读文档,构建特定 boost 架构的方法是使用 b2 的“address-model=xx”选项。
例子:
或者
希望有帮助。
问候,
-RMWCaos
编辑:找到另一个提供相同答案的 SO 线程 这里。
From what I understand, and if I read the documentation correctly, the way to build a particular architecture of boost is with the "address-model=xx" option for b2.
EXAMPLES:
or
Hope that helps.
Regards,
-RMWChaos
EDIT: Found another SO Thread providing the same answer here.