程序编译的过程中就是将用户的文本形式的源代码(c/c++)转化成计算机可以直接执行的机器代码的过程。主要经过这么几个过程:
1、编译,由编译器将c源代码(.cpp)转变成汇编代码(.s)
2、汇编,由汇编器将汇编代码(.s)转变成目标代码(.o)
3、链接,由链接器将代码在执行过程用到的其他目标代码和库文件链接成为一个可执行程序也就是目标程序。
1、编译
编译的过程就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,编译的过程包括两个大部分:
预处理 = 预编译
而编译预处理主要对文件中的四种情况处理:宏定义、#include文件包含、条件编译、特殊符号
特殊符号是指:例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些串将用合适的值进行替换。
2、汇编
汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。