是否有标志或其他可靠方法来检测编译的 C++ 二进制文件是否经过优化编译?
我接受特定于编译器的解决方案。
编辑:这是针对构建部署系统的,它可能会意外部署未正确构建的二进制文件。防水解决方案不太可能,但如果在某些时候可以检测到这一点,它将减少一些痛苦(和金钱)。
编译器通常是 gcc,有时是 sun,如果有 MSVC 解决方案,为了社区的利益,我不想排除它。
最佳答案
最新版本的 GCC 有一个 way to report which flags were used to compile a binary (第三个要点)。
有一个相关的命令行开关(--fverbose-asm)“仅将汇编器输出文件中的信息记录为注释,因此信息永远不会到达目标文件”。 --frecord-gcc-switches 开关“导致用于调用编译器的命令行被记录到正在创建的目标文件中。”
关于c++ - 检测 C++ 二进制文件是否被优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121032/