因为现在的开发环境都是集成开发环境,所以我们很少需要关注一段代码在计算机中编译链接的过程。但是事实上,通常一段代码需要四个步骤才能完成从编译到链接的过程,分别是预处理,编译,汇编和链接。
编译链接过程如图:
1.预编译
预处理编译过程主要处理源代码中以“#”开始的预编译指令。比如”#include“,”#define“等,主要处理如下:
1.将所有“#define”删除,并且展开所有的宏定义;
2.处理所有条件预编译指令,将被包含的文件插入到该预编译指令的位置;
3.删除所有注释;
4.添加行号和文件名标示,便于后面调试或错误警告提示;
5.保留所有#program编译器指令,这一部分后面编译器需要使用。
2.编译
编译的过程就是把预处理完的文件进行一系列的词法分析,语义分析及优化后的汇编代码文件。
3.汇编
汇编器是将汇编代码转变成计算机可以执行的指令,得到目标文件。每一个 汇编语句几乎都对应一条机器指令,所以汇编器的汇编过程相对于编译器来讲比较简单,只是根据汇编指令和机器指令的对照表一一对应翻译就可以了。
4.链接
链接的过程就是将经过预处理、编译、汇编后得到的目标文件链接起来,得到最终的可执行文件。