c语言执行步骤运行编译,C语言编译到运行

本文详细介绍了C语言从源代码到可执行文件的完整流程,包括预处理(处理宏定义、条件编译等)、汇编(将高级语言转换为汇编代码)、编译(生成目标文件)和链接(组合目标文件与系统组件形成可执行文件)。通过gcc命令的不同参数,如-E、-S、-c和-o,可以分别进行各个阶段的操作。了解这一过程有助于深入理解程序的构建原理。
摘要由CSDN通过智能技术生成

C语言从源代码到可执行文件需要经过以下步骤

C语言源代码->预处理->汇编->翻译->链接->计算机执行

预处理

作用: 预编译过程主要处理源代码文件中以“#”开始的与编译指令

命令:gcc -E hello.c :只做预处理,不做后续的动作。

什么是预处理命令?

所有以“#”开头的语句,都叫做预处理语句。

以下显示了部分的预处理命令

#define bit(n) (1

#undef

#include #if 0

#ifndef

#endif

#else

#elif

#ifdef

#line

#error

#parama

预处理宏:

LINE

FILE

TIME

DATE

STDC

汇编

作用:将高级语言转换成汇编语言

命令:gcc -S hello.c :只汇编,不翻译。

编译

作用:编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。C语言代码经过编译以后,并没有生成最终的可执行文件(.exe 文件),而是生成了一种叫做目标文件(Object File)的中间文件(或者说临时文件)。

编译是针对一个源文件的,有多少个源文件就需要编译多少次,就会生成多少个目标文件。

命令:gcc -c hello.c :只编译,不链接。

链接

作用:编译只是将我们自己写的代码变成了二进制形式,它还需要和系统组件(比如标准库、动态链接库等)结合起来,这些组件都是程序运行所必须的。链接(Link)其实就是一个“打包”的过程,它将所有二进制形式的目标文件和系统组件组合成一个可执行文件。完成链接的过程也需要一个特殊的软件,叫做链接器(Linker)。

命令:gcc *.o -o target

多个源文件的编译

1. 对每一个源文分别进行编译。gcc -c *.c -o *.o

2. 最后统一链接。gcc *.o -o target

gcc命令参数

-o :对输出的目标文件或可执行文件重命名。

-c : 只编译不链接

-I :指定头文件位置

-L :指定库文件所在的位置

-l :指定库文件名

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值