Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
-Map=mapfile在检查使用GNU 链接器选项生成的地图文件时,我注意到了一些特殊情况。它列出了属于该.text部分的几个符号,而二进制文件的符号表将它们列为该部分的.rodata一部分。我怀疑这是某种厚颜无耻的优化,因为编译器可能确定这些符号只会被读取,但令我惊讶的是地图文件没有反映这一点。我的理解是链接几乎是编译过程的最后阶段,所有优化都发生在它之前。那是对的吗?为什么这些符号后来被优化了?
-Map=mapfile
.text
.rodata
正如您可能推断的那样,工具链是 GCC。源代码是用 C 编写的。