程序的链接和装入
程序的链接和装入
思考这样一个问题,逻辑地址是在链接时形成的还是在装入时形成的。应该是在链接时就已经形成了逻辑地址,后面的装入确定了物理地址
静态重定位是在程序运行之前由装配程序完成的,必须分配其要求的全部连续内存空间,对于采用了页式存储的系统,无法使用静态重定位
C语言编译的过程
C语言编译分为预处理、编译、汇编和链接四个过程
预处理
预处理用于将所有的#include头文件以及宏定义替换为其真正的内容,预处理得到的仍然是文本文件
编译
这里的编译指的不是程序从源文件到二进制程序的全部过程,而是经过预处理之后的程序转换为特定汇编代码的过程
汇编
汇编过程将上一步的汇编代码转化为机器码,这一步产生的文件叫做目标文件,是二进制格式
链接
链接将多个目标文件以及所需要的库文件链接成最终的可执行文件。