1. 空间与地址分配
是一个相似段合并的过程。
step one,空间与地址分配
step two,符号解析与重定位
链接之前,目标文件中的所有段的VMA都是0。
.text or .data的VMA(虚拟地址)为什么不为0?这涉及操作系统的进程虚拟地址空间的分配原则。
当虚拟空间地址分配完之后,就可以根据所分配的虚拟空间地址确定符号的地址。
2. 符号解析与重定位
重定位表
重定位表的结构:
R_366_32 绝对寻址修正 S+A
R_386_PC32 相对寻址修正 S+A-P
C++相关问题
全局构造函数与析构函数
ELF文件定义了两种特殊的段.init, .fini分别存放初始化代码和进程终止代码指令.
最小的程序
不使用库函数

本文详细介绍了链接器的工作过程,包括空间与地址分配、符号解析与重定位等关键步骤,并通过具体的代码示例和objdump命令输出,展示了这些过程的具体实现。

620

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



