C++从源代码到可执行文件
1. 预处理
处理 #include #define #pragma
等预处理指令,删除注释,添加行号和文件名,生成 .i 文件 [预处理器cpp]
$(CXX) -E $(CPPSourchCode) > $(BinaryFile)
其中 -E
代表只运行预处理器
2. 编译
词法分析、语法分析、语义分析及优化,将预处理后的 .i 文件转换成 .s 汇编文件 [编译器egcs]
$(CXX) -S $(CPPSourchCode)
其中 -S
代表只运行预处理器和编译器
3. 汇编
由 .s 汇编文件变为 .o 目标文件(二进制机器码) [汇编器as]
$(CXX) -c $(CPPSourchCode/Assembly)
其中 -c
代表只运行预处理器,编译器,和汇编器
4. 链接
链接 .o 目标文件, 生成 .out 可执行程序 [链接器ld]
$(CXX) $(CPPSourchCode/Assembly/Objective)
默认生成 a.out ,可以加上 -o FileName
命令制定生成的文件名。