文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.5.4 C 程序编译流程
由上面的例子可知,只要事先写好一个“.c”后缀的源文件,然后使用“gcc 命令”进行编译,就可以得到一个“.exe”后缀的可执行的 C 程序文件。但这期间并非只有一道工序,而是分别经过了预处理、编译、汇编和链接四个流程,如图 1.19 所示。
图 1.19 C 程序的编译流程
1.预处理
在源文件被编译之前,首先要进行预处理的工作,也就是对源代码进行相应的展开、替换和清理。在本例中,预处理工作有两项:①把代码注释部分去掉,不让其参与编译;②把“stdio.h”文件包含进来,即用“stdio.h”中的内容替换在“#include <stdio.h>”位置。
2.编译
源文件被预处理之后,再以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,生成相应的汇编文件。
3.汇编
汇编是指把汇编语言代码翻译成目标机器指令的过程,也就是把汇编码转换成机器所能识别的二进制码,通常把经过汇编之后生成的文件称为目标文件。
4.链接
经过汇编之后生成的目标文件并不能立即被执行,还需要由链接器将代码在执行过程中用到的其他目标代码及库文件进行链接,最终生成一个可执行程序。例如本例中用到了 printf 函数,就需要找到包含该函数的标准库文件,对它进行链接。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论