深入理解计算机系统-程序链接

链接

就是将不同部分的代码和数据手机和组合成为一个单一文件的过程,这个文件可被加载到存储器并执行。

链接过程可以在如下时间执行:

  1. 编译时:在源代码翻译成机器代码时
  2. 加载时:程序被加载器加载到存储器并执行时
  3. 运行时:由应用程序去完成这个工作,OS提供系统调用接口

静态链接

以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出。输入的可重定位目标文件由各种不同的代码和数据节组成。

其主要完成如下两个任务:

  1. 符号解析:目标文件定义和引用符号。将每个符号引用和一个符号定义联系起来。即为:将程序中出现的存储单元名字和真正的定义处联系起来,主要是作用域问题。
  2. 重定位:通过把每个符号定义和一个存储器位置联系起来,然后修改所有对这个符号的引用,使得他们指向这个存储器位置,从而从定位这些数据节。

目标文件

  • 可重定位目标文件
  • 可执行目标文件
  • 共享目标文件

动态链接


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值