在Linux系统下C语言编译过程的四个步骤

您所在的位置:网站首页 c语言在linux中怎么编译执行程序文件 在Linux系统下C语言编译过程的四个步骤

在Linux系统下C语言编译过程的四个步骤

2024-07-01 21:23| 来源: 网络整理| 查看: 265

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语言的过程中依次执行了四步操作:

预处理(Preprocessing)编译(Compilation)汇编(Assemble)链接(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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3