检查waf中的编译器优化标志

时间:2011-11-01 01:42:24

标签: optimization compiler-construction option waf

我已经开始使用waf构建系统作为CMake的替代品。到目前为止,这是一次很棒的经历。但是,我无法找到有条件地将优化标志传递给编译器的好方法。我编写的一些代码受益于特定的优化标志,这些标志仅在最近的gcc版本中可用,但我希望我的代码尽可能地便携。因此,我想在将它们添加到用于编译的cxx标志列表之前检查编译器是否支持这些标志。最简单的方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用ConfigSet cfg.env的存储功能来测试带有代码块的CFLAGS:

  • stash cfg.env
  • 添加CFLAGS
  • 执行检查,如果检查失败,请恢复cfg.env

请记住,特定的CFLAGS不可移植,如果更改编译器或目标架构,它们将无法工作。您可能希望代码使用不同的编译器,因此只有在可以识别编译器时才应启用(添加)特定的CFLAGS。

如果您的代码是开源代码,如果您的代码对性能不是很重要,请不要强加CFLAGS。 大多数Linux发行版都会根据目标添加全局优化标志。