流程图
由的流程图可得,使用gcc编译器编译C源程序需要经过四个处理步骤。
1.预编译:
- 预编译作用:
处理 | 处理效果 |
a.将头文件解析 | 把头文件的解析得来内容代替头文件代码 |
b.处理预处理命令 | 选择相应的代码段 |
c.展开宏 | 将代码中的宏替换成相应的数值 |
d.删除注释 | 删除注释 |
- 预编译只会进行以上四个步骤,此过程不会检查代码逻辑,即不具有代码报错功能。
- 命令:gcc -E -o hello.i hello.c
.c源文件与.i预编译文件对比图
2.编译
- 编译过程就是将预编译文件.i编译成汇编文件,此过程具有代码报错功能。
- 命令:gcc -S -o hello.s hello.i
.s汇编指令文件与.i预编译文件对比图
3.汇编
- 汇编就是将汇编指令文件.s编译成机器唯一识别的二进制文件.o
- 命令:gcc -c -o hello.o hello.s
.o二进制文件与.汇编指令文件对比图
4.链接
- 链接就是将汇编生成的OBJ文件、系统库的OBJ文件、库文件链接起来,最终生成可以在特定平台运行的可执行程序。
- 命令:gcc -o hello hello.o