编译原理(九)C语言编译系统

C语言编译系统:

编译原理(九)C语言编译系统

两边扫描,有些跳转代码,要等翻译过后,才能知道具体位置,所以要进行第二遍编译:

编译原理(九)C语言编译系统

连接器

目标模块或目标文件的形式

  • 可重定位的目标文件
  • 可执行的目标文件
  • 共享目标文件
  • ----一种特殊的可重定位目标文件
  • ----在装入程序或运行程序时,动态地装入到内存并连接(例如,当你引入了包含printf的头文件,当用到printf的时候,会将此文件装入内存,否则不装入,如此做到动态装入)

连接是一个收集、组织程序所需的不同代码和数据的过程,以便程序能被装入内存并被执行

连接的时机:编译时(静态连接器)、装入时(动态连接器)、或运行时。

编译原理(九)C语言编译系统

若需要了解装入过程真正怎样工作的,必须在理解了进程、虚拟内存和内存分页等概念以后。