C语言编译系统:
两边扫描,有些跳转代码,要等翻译过后,才能知道具体位置,所以要进行第二遍编译:
连接器
目标模块或目标文件的形式
- 可重定位的目标文件
- 可执行的目标文件
- 共享目标文件
- ----一种特殊的可重定位目标文件
- ----在装入程序或运行程序时,动态地装入到内存并连接(例如,当你引入了包含printf的头文件,当用到printf的时候,会将此文件装入内存,否则不装入,如此做到动态装入)
连接是一个收集、组织程序所需的不同代码和数据的过程,以便程序能被装入内存并被执行
连接的时机:编译时(静态连接器)、装入时(动态连接器)、或运行时。
若需要了解装入过程真正怎样工作的,必须在理解了进程、虚拟内存和内存分页等概念以后。