链接程序时是否需要重复编译标志?

时间:2014-11-04 15:40:08

标签: c++ gcc makefile g++ gnu-make

用于优化的-O等g ++标志和用于创建调试符号的-g是否会影响链接过程中的任何内容?

更具体地说,如果我将编译和链接分开(例如,在make文件中),并且我在编译期间提供了-O-g标志,那么在链接时我是否还应该提供这些标志?

1 个答案:

答案 0 :(得分:1)

传统上,这是不必要的。然而,编译器的最新改进确实至少允许在链接时运行:LTO(链接时优化)导致编译的目标文件包含中间代码,而不是机器代码,并且中间代码将被编译为机器代码在链接时,可以应用优化,如果每个目标文件本身包含机器代码,则优化无效。编译的第二步受命令行选项(如-O)的影响,因此在链接时应将它们包含在命令行中。