总的来说c语言编译分为四步:
- 预处理
- 编译
- 汇编
- 链接
1.预处理
预处理是将所有的#include头文件以及宏定义替换成其真正的内容,预处理后,文件体积会变大很多。
gcc -E zst.c -o szj
-E为gcc命令 指的是只编译预处理就会停止
如图所示 文件的大小
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8d65950354d5d48afa9a123a60c0d80b.png#pic_center)
2.编译
把预处理之后的c语言程序编译生成与机器相关的as汇编语言代码
gcc -S zst.c -o zst.s
如图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/da08f2c776a2260b0b4262eda8360660.png#pic_center)
3.汇编
将上操作的汇编代码,转换成机器码,这一步产生的文件叫目标文件
gcc zst.s -o zst.o
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4a92c1e92a7e04caba2a4cf14bd14d65.png#pic_center)
4.链接
链接过程将多个目标文件以及所需要的库文件链接形成最终的可执行文件