静态链接重定位的地址

时间:2017-08-18 18:35:34

标签: compiler-construction static-linking

我对静态链接有一个非常基本的疑问。

假设我们有2个目标代码A和B.目标代码B包含由A调用的函数B()。

现在假设在第100个位置的目标代码A中调用函数B()。

现在将函数B()直接放置在位置100处,或者将它放置在最终目标代码文件中的某个其他位置,并在第二次传递链接期间解析(如函数B()将放置在位置150处对B()的最终目标代码和函数调用将被解析为150)?

1 个答案:

答案 0 :(得分:1)

链接时,链接器会将A和B中的函数放在内存中的适当位置。然后它将查看A的第100个位置的调用指令,并将B()的地址粘贴到该指令中。