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 命令制定生成的文件名。


posted @ 2021-03-27 18:46  HarryPotterIsDead!  阅读(154)  评论(0编辑  收藏  举报