一个高级的C语言程序,要能在机器上执行必须要转换为能够被机器读懂的低级机器语言指令。然后这些指令按照一种成为可执行目标程序的格式打包好,并以二进制磁盘文件形式存放起来,目标程序也成为可执行目标文件。
把一个源程序文件翻译成一个可执行目标文件需要经过一个翻译过程,这个翻译过程分为四个阶段,分别是预处理器、编译器、汇编器、链接器。
1预处理器(cpp),将程序投#include的内容读取插入到程序中,通常以.i作为拓展名
2编译器(ccl),将被修改的源程序翻译为汇编程序,以.s为拓展名
3汇编器(as)将汇编程序翻译成机器能够读懂的机器语言指令,并把这些指令打包成可重定位目标程序,为二进制文件,以.o为拓展名
4链接器(ld),将标准c库中的一些被用到的.o文件链接到主文件,生成一个可执行目标文件