知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

C语言编译过程中四个步骤的详细介绍

发表时间:2022-03-26来源:网络

1. 简介

C语言程序从源代码到可执行文件(二进制文件)都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。
以hello.c文件为例:

#include int main(){ printf("hello world!\n"); }

在linux下编译C程序:

$ gcc hello.c -o hello # 编译 $ ./hello # 执行 hello world! # 输出文本

2. 编译的步骤

gcc命令编译C语言的过程中依次执行了四步操作:1. 预处理(Preprocessing), 2. 编译(Compilation), 3. 汇编(Assemble), 4. 链接(Linking)。

2.1 预处理(生成.i文件)

预处理器对源代码其进行一些文本性质的操作, 主要任务包括:

删除注释 插入被 #include 指令包含的文件内容 替换由 #define 定义的符号 确定代码的部分内容是否应该根据一些条件编译指令进行编译

预处理会生成一个.i的文件。

命令:

gcc -E hello.c -o hello.i

2.2 编译(生成.s文件)

编译器gcc把预处理后的文件进行语法分析、语义分析以及优化后生成汇编代码文件

命令:

gcc -S hello.i -o hello.s

2.3 汇编(生成.o文件)

汇编器把汇编代码文件转换成中间目标文件
命令:

gcc -c hello.s -o hello.o // 注意:此处-c为小写

2.4 链接(生成可执行文件)

链接器把目标文件与所需要的附加的目标文件(如静态链接库、动态链接库)链接起来成为可执行的文件
命令:

gcc hello.o -o hello
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜