是否有一种方法使“gcc';是否在编译代码时转储/显示所有正在使用的标志?

是否有一种方法使“gcc';是否在编译代码时转储/显示所有正在使用的标志?,gcc,arm,Gcc,Arm,请注意,这与 我确实详细地讲了一遍 尽管-frecord gcc switches非常棒,但它只捕获命令行参数 例如,我对捕获通常在命令行中传递的-O2不感兴趣。我更想记录所有的标志,如-fauto inc dec,它们是由-O2启用的 (与上面的链接不同,请注意我可以访问源代码、编译器和构建基础结构。我只想在编译期间捕获标志。不要挑剔任何特定的gcc版本)您可以尝试-fverbose asm。这将转储程序集文件顶部注释中使用的优化选项。以前是elfThreak@Severin中的-frecor

请注意,这与 我确实详细地讲了一遍

尽管
-frecord gcc switches
非常棒,但它只捕获命令行参数

例如,我对捕获通常在命令行中传递的
-O2
不感兴趣。我更想记录所有的标志,如
-fauto inc dec
,它们是由
-O2
启用的


(与上面的链接不同,请注意我可以访问源代码、编译器和构建基础结构。我只想在编译期间捕获标志。不要挑剔任何特定的gcc版本)

您可以尝试
-fverbose asm
。这将转储程序集文件顶部注释中使用的优化选项。

以前是elfThreak@Severin中的-frecord选项-不幸的是,elf中的frecord选项似乎不起作用(从gcc v5.2.1开始)。我确实看到一些开发工作,但是,我无法跟踪它是的,我记得一些讨论为什么它应该在/不应该在,在某个点上它在那里,然后它就不在了。。。我猜,您必须仔细研究,坦率地说,只有从单个编译单元(aka.o文件)获取选项才可能/有用。没有人保证可执行文件中的文件是使用相同的选项编译的,对于我使用外部库、我们的库、系统库处理的所有项目,我非常确定它们的编译方式都有点不同——ABI负责restYep,我只对每个编译单元上的标志感兴趣(当然,不同的客户之间会有很多差异,而不是寻找任何全球旗帜!)