C++源代码编译的过程包括四个阶段:
- 预处理(Preprocessing):在这个阶段,使用预处理器对源代码进行处理,并生成预处理后的中间文件。
2. 编译(Compilation):在这个阶段,将预处理后的中间文件编译成汇编语言表示的目标文件。生成的文件通常是以
.i
或.ii
为扩展名的中间文件,例如 HelloWorld.i 或 HelloWorld.ii。
3. 汇编(Assembling):在这个阶段,汇编器将汇编语言表示的目标文件组装成机器可读的目标文件。生成的文件通常是以
.s
或.asm
为扩展名的汇编语言文件,例如 HelloWorld.s 或 HelloWorld.asm。
4. 链接(Linking):在这个阶段,链接器将各个目标文件以及库文件链接起来,生成最终的可执行程序。生成的文件是以
.o
或.obj
为扩展名的目标文件,例如 HelloWorld.o 或 HelloWorld.obj。
生成的文件通常是以
.exe
、.dll
或.so
为扩展名的可执行文件或者动态链接库文件,例如HelloWorld.exe。
因此,这四个阶段的组合也被称作“预处理、编译、汇编和链接”(Preprocessing, Compilation, Assembling and Linking,简称 PCAL)。