-O0,-O1和-g之间有什么区别?

dea*_*mer 1 c c++ gcc

我想知道使用-O0,-O1和-g来启用lib中的调试符号.有些人建议使用-O0来启用调试符号,有些人建议使用-g.

那么-g和-O0之间的实际差异是什么?-01和-O0之间的区别是什么,哪个最好用.

nos*_*nos 6

-O0 是优化级别0(没有优化,与省略-O参数相同)

-O1 是优化级别1.

-g 生成并在二进制文件中嵌入调试符号.

有关进一步说明,请参阅gcc 文档和联机帮助页.

对于进行实际调试,调试器通常无法理解已经使用优化编译的内容,尽管调试符号即使在优化时也可用于其他事情,例如生成堆栈跟踪.


MBy*_*ByD 5

-OX指定编译器将执行的优化级别-g用于生成调试符号。

  • 并且--help给您相同的答案;) (3认同)