谁负责符号引用链接器或加载器

时间:2017-03-29 16:23:33

标签: assembly compiler-errors compiler-construction linker loader

我已经阅读了很多关于链接器或加载器的文章但是 我很困惑谁负责通过对其他对象模块中的位置的符号引用来替换对象模块中的绝对引用。 链接器是否替换其他对象模块或加载器中的符号引用是否在程序加载时在主存中执行此操作

1 个答案:

答案 0 :(得分:1)

解决对象模块之间的符号依赖关系传统上是链接器的责任。链接器检查所有目标文件并解析所有符号引用并构建单个可执行文件。但是,当我们引入共享库时,这种方法会崩溃,即可以在不同可执行文件之间共享并且在加载时链接到程序的对象模块。为了使这项工作,链接器的某些部分被移动到加载器中,使依赖关系的解析成为共同的责任。链接器解析目标文件和静态库之间的依赖关系,而加载器解析可执行文件和任何共享库之间的依赖关系。