c++ - 检测 C++ 二进制文件是否被优化

标签 c++ optimization

是否有标志或其他可靠方法来检测编译的 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/

相关文章:

c++ - 没有 if-else 语句的一维卷积(非 FFT)?

c++ - 通过多个线程自行取消/注册观察者

javascript - 为 javascript 国家选择器优化 map 的使用

optimization - 在 JVM 中运行时在 Scala 中使用递归

c++ - 如何将范围信息传递给 C++ 编译器?

sql - 关系数据库是否适合向量计算?

c++ - 如何命名比较谓词函数来排序 vector

c++ - 使用 importlib 属性时的 MIDL2015 警告

java - 在 Java 中哪个更快,而使用递归方法?

c++ - 线程安全地构造 C++ 对象(MFC CRecordset)