vlambda博客
学习文章列表

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

一句话告诉你gcc怎么编译C文件

执行命令                            

gcc Tristone.c  -o Tristone

解释:“Tristone。C”Tristone可执行文件编译,编译完成后”。可以执行/ Tristone”。                            

GCC的全称是GNU C编译器,本来是专门为C语言编译器,后来扩展也兼容c++, Java成为扩展版本的GCC。                            

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

下面的一个实际例子。

安装GCC

Linux CentOS 8最小化安装,默认不安装GCC,我们可以手动安装它。

根执行命令:                             

DNF - y install GCC                            

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

的默认安装8.2.1版本的GCC。                            

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

编写一个C语言程序代码

运行以下命令:                            

The sixth Tristone. C                            

粘贴在以下内容                            

#include<stdio.h>

int main ()                            

{                            

printf (“Hello, world !\ n”);                            

Return 0;                            

}                            

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

分步编译测试

我们运行GCC Tristone命令”。事实上,C - o Tristone“编译器通过以下四个阶段,我们可以看                              到所有的编译一步一步:

(1)预处理阶段(加入相应库,宏替换等)

一个非常简单的C文件预处理阶段也会增加800多行的代码,我们可以重定向到一个文件里面查看。

gcc -E Tristone.c > Tri.e

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

(2)编译阶段(生成汇编程序)

gcc -S Tristone.c -o Tri.s

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

(3)汇编阶段(把汇编语言程序汇编成机器语言指令,并使用可重定位目标程序的格式来打包指令)

gcc -c Tristone.c -o Tri.o

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

这一步生成的内容已经不是我们能读懂的了。

(4)链接阶段(合并各个打包好的机器语言指令,生成可执行二进制文件)

gcc Tri.o -o Tri

紧急提醒!Linux是如何编译C语言程序文件的?CentOS 8的gcc使用方法介绍

这个“Tri”已经是一个可执行的文件,运行一个后,将输出一个“Hello,world!”

一步编译

以上4步可以统一以下一个命令来实现:

gcc Tristone.c -o Tristone

格式:gcc 文件名.c -o 你需要执行文件名称

从结果上看“Tri”和“Tristone”的文件大小是一样的,也就是分步骤编译和一步编译,结果是一样的。

自己写一段C语言/C++的代码或者从网上找一段代码,使用Linux编译一下试试吧。