如何确定给定编译标志的 min/max 版本的 GCC?

How to determine the min/max version of GCC for a given compilation flag?

我添加了一个我在 GCC Options Summary 中找到的编译标志,却发现 GCC 7 不知道那个(我们使用持续集成系统,其中许多版本一个接一个地启动,并且每个失败意味着整个构建失败,我们无法构建下一个版本。

该站点不包含每个选项的版本范围,因此,除了一个一个地测试每个编译器版本之外,是否有更简单的方法来获取此信息?

创建一个小的有效测试程序并测试它是否使用测试标志编译。如果编译通过,则表示支持该标志。

存在用于简化此类工作的构建系统,例如 CMake check_c_compiler_flag 或 autotools ax_check_compile_flag

刚找到这个。使用 Compiler Explorer:

  • 使用以下程序:int main() {}
  • 您可以在源代码上方单击 Add new... > Conformance Viewer 并列出您支持的所有编译器并为每个编译器设置标志。