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

  • 有人知道默认优化标志的位置吗?
  • 如果在bjam中声明了它们,有人知道我可以如何覆盖它们吗?
  • 最佳答案

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

  • 有关GCC的信息,请参见gcc.jam
  • 对于MSVC,请参见msvc.jam

  • 对于其他编译器,您可以通过查看源代码来弄清楚它们,因为它们是很容易解释的。您可以在<optimization>源中搜索“<inlining>”和“*.jam”。

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

    10-08 08:21