5

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

  1. 有谁知道默认优化标志的位置?
  2. 如果它们在 bjam 中声明,有谁知道我可以如何覆盖它们?
4

1 回答 1

9

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

您可能只需查看源代码就可以为其他编译器找出相同的信息,因为它们是相当不言自明的。您可以在来源中搜索“ <optimization>”和“ ” 。<inlining>*.jam

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

于 2010-05-08T21:01:33.523 回答