GCC编译程序时分为四个阶段,预处理(Pre-processing),编译(Compiling),汇编(Assembling),链接(Linking)。
下面以一个小程序举例
1.预处理:test.c 中使用了头文件stdio.h,GCC编译时首先把头文件中的内容加载到test.c的首部。
2.编译:编译即检查程序的对错,分三个步骤,第一词法分析,主要负责检查关键字、标识符等是否正确;第二语法分析,负责检查程序中语句的语法是否正确;第三是语义分析,主要负责检查程序语句的逻辑意义是否正确。
3.汇编:把汇编程序编译成CPU可识别的二进制文件,称为目标文件。
4.链接:目标文件已被cpu识别,但是单个目标文件一般无法运行,因为一个程序往往是由多个源文件组成的,每个源文件只对应一个目标文件。需要把目标文件test.o与函数库文件链接在一起才能运行。
本文详细介绍了GCC编译器的工作流程,包括预处理、编译、汇编和链接四个阶段。预处理阶段会将头文件内容加载到源文件中;编译阶段负责检查程序的语法和语义;汇编阶段则将高级语言转换为机器码;链接阶段则是将多个目标文件组合为可执行文件。
2584

被折叠的 条评论
为什么被折叠?



