0

-Map=mapfile在检查使用GNU 链接器选项生成的地图文件时,我注意到了一些特殊情况。它列出了属于该.text部分的几个符号,而二进制文件的符号表将它们列为该部分的.rodata一部分。我怀疑这是某种厚颜无耻的优化,因为编译器可能确定这些符号只会被读取,但令我惊讶的是地图文件没有反映这一点。我的理解是链接几乎是编译过程的最后阶段,所有优化都发生在它之前。那是对的吗?为什么这些符号后来被优化了?

正如您可能推断的那样,工具链是 GCC。源代码是用 C 编写的。

4

0 回答 0