1、预处理 gcc -c
- 将所有的”#define“删除,并且展开所有的宏定义
- 处理所有的条件编译指令,入“#if”,“ifdef”等。
- 处理#“include”预编译指令,将被包含的文件插入到预编译指令的位置
- 删除所有注释
2、编译
将预处理玩的文件进行一系列的语法分析和优化,产生相应的汇编代码文件
3、汇编
将变异完的汇编代码文件翻译成机器指令,并生成可重定位的.o文件,文件为二进制文件,字节编码是机器指令
4、链接 gcc -o
通过链接器将一个个目标文件及库文件连接在一起生成一个完成的可执行程序
链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。