如何判断bjam用于构建boost的优化

时间:2010-05-08 14:51:21

标签: c++ boost bjam

我正在使用bjam为intel编译器和vs2008构建boost库,我无法分辨从bjam传递给编译器的优化。对于其中一个编译器的gcc,我可以在其中一个bjam文件中看到一些优化,但是我找不到我关心的编译器的优化标志。所以,我的问题是 -

  1. 有谁知道默认优化标志的位置?
  2. 如果他们在bjam中宣布,有人知道如何覆盖他们吗?

1 个答案:

答案 0 :(得分:9)

如果您有兴趣查看在构建时调用编译器所传递的整个选项集,可以使用bjam选项运行-n -a,其余的构建选项可以为您提供调用的完整命令集以及生成的任何响应文件(请参阅Boost Jam Options)。您还可以直接查看Boost Build源并查看指定功能的转换内容(请参阅Boost Build Tools Files)。例如:

  • 对于海湾合作委员会,请参阅gcc.jam
  • 对于MSVC,请参阅msvc.jam

通过查看源代码,您可能会为其他编译器找出相同的内容,因为它们是相当自我解释的。您只需在<optimization>来源中搜索“<inlining>”和“*.jam”即可。

您可以在命令行中通过在构建时在命令行中指定feature=value选项来覆盖它们。这些选项与您在工具集文件中看到的<feature>value规范相匹配。例如,要覆盖优化功能,您可以在命令行中指定一些类似"optimization=speed"的功能。如果您想要更细粒度的控制,您将不得不深入研究Boost Build规范,并且可能需要创建自己的变体来定义要构建的特定选项和功能。