C/C++下的源文件想要运行,都是经过了汇编等一系列操作,从代码变为了机器语言。假设项目下有源文件a.cpp,其变成可执行文件经历了四个过程:
1. 预编译:
(1)将a.cpp中的#include递归
(2)将a.cpp中的#define替换
(3)删除#if和#endif
(4)删除注释//和/**/
(5)增加行号和文件标识
(6)保留 #pragma
2. 编译:
(1)进行词法分析
(2)语法分析
(3)语义分析
(4)代码优化
(5)生成汇编指令
3.汇编:
(1)翻译指令,生成.o文件
4.链接:
(1)合并段和符号表
(2)对符号进行解析
(3)分配地址和空间
(4)符号的重定位
经历了这四步后,就变成了可执行文件了。