符号解析过程

符号解析是链接器的核心任务之一,发生在重定位之前。

汇总符号表:链接器首先扫描所有输入的目标文件(.o),提取每个文件中 .symtab 节里的符号信息,将分散的符号定义和引用合并到一张全局符号表中。

解析绑定:基于汇总后的全局符号表,链接器遍历所有符号引用,为每个引用找到其对应的符号定义。这个过程确保每个名字都绑定到唯一的物理地址。

查找未定义:如果某个符号引用找不到对应的定义,则报 undefined reference 错误,链接终止。这是开发中最常见的链接错误之一。

处理多重定义:如果同一个符号被多个目标文件定义,根据强弱符号规则来判断是否报错以及选择哪个定义。强符号优先,多个强符号则报 multiple definition 错误。

符号解析是静态链接的基石,它建立了程序不同模块之间的联系通道。

链接到