编译的作用
读取源程序(.cpp),进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再转换为机器代码,生成目标文件(.obj)。最后将不同的编译单元链接成一个可执行文件(.exe)
C++的编译过程包括
step1 预编译
step2 汇编
step3 编译
step4 链接
预编译:主要展开头文件、宏定义等。
汇编:把已经预编译的文件编译成汇编代码,整个过程包含语法、词法的分析,和一些优化操作。
编译:将汇编代码变成目标代码,即生成二进制文件(.obj)
链接:将单个编译后的文件链接成一个可执行文件。
前面的预编译、汇编、编译都是针对单个文件,以一个文件为一个编译单元,而链接则是将所有关联到的编译后的单元文件和应用到的库文件,进行一次链接处理,之前编译过的文件如果有用到其他文件里面定义到的函数、全局变量,在这个过程中会进行解析。