静态链接:在程序运行之前先将各目标模块以及他们的库函数链接成一个完整的装配模块,以后不再拆开。
静态链接需解决以下两个问题:
(1)对相对地址进行修改:在由编译产生的目标模块中,使用的都是相对地址,起始地址为0,每个模块中的地址都是相对于起始地址计算的。在链接成一个装入模块后,起始地址变为L而其他地址也要做处相应的改变(L+M)
(2)变换外部调用符号:将每个模块中用的外部调用符号也都变换为相对地址。
本文详细解析了静态链接的基本概念,包括如何在程序运行前将目标模块与库函数链接成完整装配模块,以及在此过程中需解决的相对地址修改与外部调用符号变换两大关键问题。
静态链接:在程序运行之前先将各目标模块以及他们的库函数链接成一个完整的装配模块,以后不再拆开。
静态链接需解决以下两个问题:
(1)对相对地址进行修改:在由编译产生的目标模块中,使用的都是相对地址,起始地址为0,每个模块中的地址都是相对于起始地址计算的。在链接成一个装入模块后,起始地址变为L而其他地址也要做处相应的改变(L+M)
(2)变换外部调用符号:将每个模块中用的外部调用符号也都变换为相对地址。
517
1356
724
1485
834
1644
614

被折叠的 条评论
为什么被折叠?