GCC(GNU Compiler Collection)的编译过程主要包括以下几个阶段:
-
预处理(Preprocessing):
- 处理源文件中的预处理指令,如
#include
、#define
等。 - 展开宏定义,将包含的头文件内容插入到源文件中。
- 处理源文件中的预处理指令,如
-
编译(Compilation):
- 将预处理后的源文件转换为汇编语言代码。
-
汇编(Assembly):
- 将汇编语言代码转换为机器语言的目标文件(.o 文件)。
-
链接(Linking):
- 将多个目标文件以及所需的库文件链接在一起,形成可执行文件或共享库等最终产物。
- 解决目标文件之间的符号引用等问题。
在实际编译过程中,可以通过指定不同的参数来控制各个阶段的具体行为和优化选项等。例如,可以指定优化级别、目标架构等。
举例来说,使用 gcc -o