计算机系统基础
文章平均质量分 94
进击的博仔
冻它三尺冰
展开
-
(4.3)符号表和符号解析
符号表和符号解析符号和符号表符号解析全局符号的强弱性符号和符号表连接器需要使用符号表进行符号解析然后生成可执行文件,目标文件中通常有一个符号表,表中包含了在该文件中定义的所有符号的信息。C 文件包含以下 3 种符号:全局符号: 包括非静态的函数名和非静态的全局变量。外部符号: 包括在其他模块定义的外部函数名和外部变量名。本地符号: 包括带 static 的函数名和全局变量名。static 属性的本地变量在 .data 和 .bss 中分配空间。如果要链接的两个可重定位文件中包含了同名的 st原创 2022-05-21 00:05:45 · 2263 阅读 · 0 评论 -
(4.2)ELF目标文件格式
ELF目标文件格式ELF 目标文件格式可重定位目标文件格式ELF 头节ELF 目标文件格式ELF为可执行可连接格式文件(executable and linkable format)。ELF目标文件既可以用于程序的链接,也可以用于程序的执行。下图为 ELF目标文件格式的基本框架,图 a 是链接视图,主要由不同的节组成,节是 ELF 文件中具有相同特征的最小可处理单位。图 b 是执行视图,主要由不同的段组成,多个节合并后映射到一个段中。可重定位目标文件对应连接视图,而可执行目标文件对应执行视图。节头表原创 2022-05-18 23:34:58 · 797 阅读 · 0 评论 -
(4.1)编译、汇编和静态连接
程序的链接1. 编译、汇编和静态连接1.1 编译和汇编1.1.1预处理1.1.2 编译1.1.3 汇编1.2 生成可执行目标文件链接: 将一个程序的所有关联模块对应的目标代码文件结合在一起,以形成一个可执行文件的过程称为链接1. 编译、汇编和静态连接1.1 编译和汇编将高级语言源程序文件转换为可执行目标文件通常分为预处理、编译、汇编和链接四个步骤。前三个步骤用来对每个源程序文件生成可重定位目标文件,GCC生成的可重定位目标文件为 .o 后缀。最后一个步骤为链接,用来将若干可重定位目标文件组合起来,生原创 2022-05-18 13:03:21 · 426 阅读 · 0 评论