返回介绍

1.5.4 C 程序编译流程

发布于 2025-04-11 22:32:51 字数 851 浏览 0 评论 0 收藏 0

由上面的例子可知,只要事先写好一个“.c”后缀的源文件,然后使用“gcc 命令”进行编译,就可以得到一个“.exe”后缀的可执行的 C 程序文件。但这期间并非只有一道工序,而是分别经过了预处理、编译、汇编和链接四个流程,如图 1.19 所示。

图 1.19 C 程序的编译流程

1.预处理

在源文件被编译之前,首先要进行预处理的工作,也就是对源代码进行相应的展开、替换和清理。在本例中,预处理工作有两项:①把代码注释部分去掉,不让其参与编译;②把“stdio.h”文件包含进来,即用“stdio.h”中的内容替换在“#include <stdio.h>”位置。

2.编译

源文件被预处理之后,再以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令,生成相应的汇编文件。

3.汇编

汇编是指把汇编语言代码翻译成目标机器指令的过程,也就是把汇编码转换成机器所能识别的二进制码,通常把经过汇编之后生成的文件称为目标文件。

4.链接

经过汇编之后生成的目标文件并不能立即被执行,还需要由链接器将代码在执行过程中用到的其他目标代码及库文件进行链接,最终生成一个可执行程序。例如本例中用到了 printf 函数,就需要找到包含该函数的标准库文件,对它进行链接。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。