首页 > 其他分享 >静态链接

静态链接

时间:2023-02-26 09:44:17浏览次数:26  
标签:文件 定位 静态 符号 地址 解析 链接

  • 链接的主要任务:符号解析和重定位
  • 可重定位文件的特质:通过文件头--》探测到段表,字符串表等(结构体数组)--》从而解析整个目标文件的各个section。
  • 符号类型:定义在本目标文件的全局符号;在本目标文件引用的未定义在该目标文件的全局符号;段名,static局部符号等;
  • 符号解析(涉及到强弱符号解析的规则)。

 

  • 一旦链接器完成了符号解析这一步,代码中的每个符号引用和正好一个符号定义相关联。此时链接器就知道了它的输入目标模块中的代码节和数据节的大小,现在可以开始重定位了。重定位将 合并输入模块(例如所有输入模块的.data节全被和并成一个节),并为每个符号分配运行时地址。
  • 地址空间分配是 在合并之后做的虚拟地址空间的分配),链接器将运行时地址赋给新的聚合节,赋给每个模块的节,每个符号,在这之后程序中的每条指令和全局变量都有了唯一的运行时地址,根据重定位表中的重定位入口进行重定位,指令地址修正。输出成为可执行目标文件。
  • 可执行目标文件有程序头表,装载的时候根据程序头表进行装载。涉及到进程的创建和执行等过程。

 

标签:文件,定位,静态,符号,地址,解析,链接
From: https://www.cnblogs.com/wuyun--wy/p/17146944.html

相关文章