1.101、C++文件编译与执行的四个阶段
C++文件的编译与执行通常经历四个阶段,每个阶段负责不同的工作,最终将源代码转换成可执行程序:
1. 预处理(Preprocessing)
- • 由预处理器(如
cpp
)处理以#
开头的预处理指令(#include
、#define
、条件编译等)。 - • 展开头文件内容,替换宏定义,删除注释,处理条件编译指令。
- • 结果是一个纯文本的扩展源文件,通常以
.i
或.ii
为扩展名。
2. 编译(Compilation)
- • 编译器将预处理后的源代码翻译成汇编代码。
- • 进行词法分析、语法分析、语义分析和优化。
- • 生成对应平台的汇编语言文件,通常扩展名为
.s
。
3. 汇编(Assembling)
- • 汇编器将汇编代码转换成机器码,生成目标文件(
.o
或.obj
)。 - • 目标文件是二进制格式,包含机器指令和符号信息,但还未链接成完整程序。
4. 链接(Linking)
- • 链接器将多个目标文件和库文件合并,解析符号引用,生成最终的可执行文件(如
.exe
或无扩展名的二进制文件)。 - • 处理外部函数调用、全局变量地址分配等。
简要流程示意
源代码(.cpp/.c)
↓ 预处理
扩展源代码(.i/.ii)
↓ 编译
汇编代码(.s)
↓ 汇编
目标文件(.o/.obj)
↓ 链接
可执行文件(.exe/a.out)
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1940
文章版权归作者所有,未经允许请勿转载。
THE END