如何确定给定编译标志的 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
并列出您支持的所有编译器并为每个编译器设置标志。
我添加了一个我在 GCC Options Summary 中找到的编译标志,却发现 GCC 7 不知道那个(我们使用持续集成系统,其中许多版本一个接一个地启动,并且每个失败意味着整个构建失败,我们无法构建下一个版本。
该站点不包含每个选项的版本范围,因此,除了一个一个地测试每个编译器版本之外,是否有更简单的方法来获取此信息?
创建一个小的有效测试程序并测试它是否使用测试标志编译。如果编译通过,则表示支持该标志。
存在用于简化此类工作的构建系统,例如 CMake check_c_compiler_flag
或 autotools ax_check_compile_flag
。
刚找到这个。使用 Compiler Explorer:
- 使用以下程序:
int main() {}
- 您可以在源代码上方单击
Add new...
>Conformance Viewer
并列出您支持的所有编译器并为每个编译器设置标志。