【发布时间】:2026-02-07 12:20:05
【问题描述】:
如何关闭 GCC 中的所有优化?使用 -O0 不起作用,因为它仍然会优化没有效果的语句,或者在没有任何 break 语句的无限循环之后的任何代码。
【问题讨论】:
-
没有,我只有-g -gstrict-dwarf -Wall
-
我不认为你可以关闭所有优化。
-
即使没有任何标志 gcc 也会做一些基本的优化。删除没有影响(优化与否)的语句是有意义的。只是好奇:为什么要保留死代码?
-
这是用于测试框架的目的
-
这里:gcc.gnu.org/onlinedocs/gnat_ugn_unw/Optimization-Levels.html 声明使用 gcc,如果执行时间有任何问题,将 -O0 用于生产是非常不寻常的,因为 -O0 确实意味着根本没有优化。在进行性能比较时,应该牢记 gcc 和其他编译器之间的这种差异。问题是您是否真的关心编译和调试优化。我相信您无法阅读它,也无法阅读编译本身。
标签: c gcc compiler-optimization