识别是否通过优化构建了ELF二进制文件

时间:2018-10-23 03:32:13

标签: gcc optimization elf

我知道我们可以使用cmake或make来控制CFLAGSCXXFLAGS来手动构建发行版本。对我来说,release版本意味着至少给出了-O2-O3,执行了-gstrip都没有关系,而{{1} }被赋予debug

但是有时我想使用脚本来确定是否通过优化构建了elf二进制文件,因此我可以决定下一步要做什么。我尝试了-O0objdumpfile,但没有找到答案。我可以做些其他选择吗?

1 个答案:

答案 0 :(得分:2)

  

但是有时候我想使用脚本来确定是否通过优化构建了一个elf二进制文件,所以我可以决定下一步该怎么做。

您的问题的问题在于您的二进制文件很可能包含经过优化而构建的 some 代码(例如crt0.o-GLIBC的一部分)。

您的最终二进制文件由一堆目标文件组成,并且这些文件不必必须具有一致的优化标志。

您很可能只在乎编写的代码(而不是从其他库链接的代码)。您可以使用-frecord-gcc-switches。参见this answer