【发布时间】:2014-11-04 15:40:08
【问题描述】:
g++ 标志(例如用于优化的-O 和用于创建调试符号的-g)是否会影响链接过程中的任何内容?
更具体地说,如果我将编译和链接分开(例如,在 make 文件中),并且我在编译期间提供了 -O 和 -g 标志,我是否应该在链接时也提供这些标志?
【问题讨论】:
-
-g 用于生成调试符号,-O 优化,即删除发布版本中没有的东西。如果您想要优化,您不应该使用 -g ,而是您的选择。如果您使用的是 make 文件,则在编译阶段完成后就不必这样做了。
-
@DevSolar 已更正。我的错。
-
@hagubear:
-g即使对于优化的代码也很有用 - 它使可执行文件更大一些,但通常不会影响性能,并且有助于调试(一些错误只出现在优化的代码)和分析(没有必要分析未优化的代码)。
标签: c++ gcc makefile g++ gnu-make