生成可执行文件的过程

编译流程.png

  1. 预处理:执行预处理指令
  2. 编译:将预处理后的文件翻译成汇编代码
  3. 汇编:将汇编代码翻译成机器指令,生成目标文件
  4. 链接:将目标文件和库文件链接起来,得到可执行文件

目标文件一般分为三种:

  • 可重定位的目标文件:汇编器生成的目标文件是可重定位的目标文件,是不可执行的,需要链接器经过链接、重定位之后才能运行
  • 可执行的目标文件:即可直接执行的文件,由程序转换为进程
  • 可被共享的目标文件:可被共享的目标文件一般以共享库的形式存在,在程序运行时需要动态加载到内存,跟应用程序一起运行