提示:个人学习Linux软件开发使用,下面仅供参考


1、Linux编译工具GCC

1.1、Gcc是什么?

GCC(GNU Compiler Collection)是一套由GNU项目开发的开源编译器集合,用于将源代码编译成

可执行文件或库文件。GCC 支持多种编程语言,主要包括但不限于C、C++、Objective-C、

Fortran、Java、Ada和Go等。它是自由软件运动的重要组成部分,并根据GNU通用公共许可证

(GPL)发行,允许用户免费使用、修改和重新发布。

作为编译器套件,GCC 包括了一系列工具,从预处理器到编译器本身、汇编器、链接器以及相关的

库(例如,C++的标准库libstdc++)。它可以在多种架构的计算机系统上运行,并为目标系统生成高

效的机器代码。GCC因其跨平台能力和高度可配置性而在开发界广受欢迎。

1.2、GCC编译过程

预处理
编译
汇编
链接
反汇编
汇编
链接
main.c
main.i
main.S
main.o
led.elf
led.dis
start.S
statrt.o

简单来说,使用GCC编译C/C++程序时,主要经历以下几个步骤:

  1. 预处理:读取源代码并进行初步处理,主要包括展开头文件(包含其他代码)、执行宏定义、去掉注释等。

  2. 编译:将预处理过的源代码转换成汇编代码,这时的代码已经是针对特定架构的低级语言,但还不能直接运行。

  3. 汇编:将汇编代码转换为机器语言,形成目标文件(.o 文件),这是计算机可以直接识别和执行的二进制代码,但它还是独立于程序其他部分的。

  4. 链接:将所有目标文件(包括主程序和其他依赖库的目标文件)整合在一起,创建一个完整的可执行文件。这个过程中会解决函数和变量之间的引用关系,确保各个模块可以正确交互。

所以,当你在命令行敲下类似 gcc main.c -o myProgram 的命令时,GCC实际上是帮你完成了上述所有步骤,最终得到一个可以直接运行的可执行文件“myProgram”。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐