在Unix/Linux系统上,从源文件到目标文件的转化是由编译驱动程序(complier driver)完成。如果采用GCC编译的话,这个过程分为四个阶段:预处理,编译,汇编,链接。
1.预处理阶段:根据#开头的命令,修改原始的C程序,将#include<**>直接插入到程序中,生成另外一个C程序。该文件的后缀通常为.i
2.编译阶段:将hello.i翻译成以文本文件形式的汇编程序hello.s
3.汇编阶段:汇编器将hello.s翻译成机器语言指令。以二进制格式存放,后缀为.o
4.链接阶段:并入预编译为.o文件的函数,生成可执行文件。
参考:《深入理解计算机系统》,P4。