GCC(GNU Compiler Collection)是一个用于编译C、C++、Objective-C、Fortran、Ada等编程语言的编译器套件。GCC编译过程可以分为四个主要阶段:预处理、编译、汇编和链接。
预处理(Preprocessing): 在这个阶段,预处理器(cpp)处理源代码文件,主要完成以下任务:
编译(Compilation): 编译器(cc1)将预处理后的源代码文件转换成汇编语言文件。在这个阶段,编译器会进行以下操作:
汇编(Assembly): 汇编器(as)将编译阶段生成的汇编语言文件转换成目标代码文件(通常是.o文件)。目标代码文件包含了机器语言指令,但尚未链接成可执行文件。
链接(Linking): 链接器(ld)将一个或多个目标代码文件以及所需的库文件链接成一个可执行文件。在这个阶段,链接器会执行以下操作:
经过这四个阶段,GCC完成了源代码到可执行文件的编译过程。