c的编译过程

本文详细介绍了C语言的编译过程,包括预处理、编译、汇编和链接四个步骤。预处理负责删除注释、展开宏和包含文件;编译阶段将预处理后的代码转化为汇编语言;汇编阶段将汇编代码转为机器代码;链接阶段则将所有模块合并并解决外部引用。在遇到编译错误时,需要根据错误信息进行修复并重新编译。
摘要由CSDN通过智能技术生成

C是一种编译语言。它的源代码可以用程序员选择的任何编辑器以文本文件的形式编写,然后必须编译成机器代码。

C 源文件按照惯例以.c 扩展名命名,我们使用命令“gcc”来编译 C 源文件。(GCC 代表 GNU Compiler Collection,它是由 GNU 项目产生的编译器系统。)

编译四步:预处理、编译、汇编、链接。
接下来介绍下编译中的这四步分别做了什么。

编译四步
1.预处理
预处理是第一步。预处理器通过以下方式遵守以 # 开头的命令(称为指令):

(1) 删除评论
(2) 扩展宏
(3) 扩展包含的文件

如果您包含了诸如#include <stdio.h> 之类的头文件,它将查找stdio.h 文件并将头文件复制到源代码文件中。
预处理器还生成宏代码并将使用#define 定义的符号常量替换为它们的值。

2. 编译
编译是第二步。它获取预处理器的输出并生成汇编语言,一种中间人类可读的语言,特定于目标处理器。

3.汇编
汇编是编译的第三步。汇编器会将汇编代码转换为纯二进制代码或机器代码(零和一)。此代码也称为目标代码。

4.链接
链接是编译的最后一步。链接器将来自多个模块的所有目标代码合并为一个。如果我们使用库中的函数,链接器会将我们的代码与该库函数代码链接。
在静态链接中,链接器将所有使用的库函数复制到可执行文件中。在动态链接中,不会复制代码,只需将库的名称放在二进制文件中即可。
如果对代码进行更改(即对源文件进行任何更改),则需要保存并重新编译。

在某些情况下,C 源文件将无法成功编译。
需要阅读错误消息以获取有关如何修复的线索,修复代码后保存并重新编译。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值