学习Linux软件开发
将所有目标文件(包括主程序和其他依赖库的目标文件)整合在一起,创建一个完整的可执行文件。的命令时,GCC实际上是帮你完成了上述所有步骤,最终得到一个可以直接运行的可执行文件“myProgram”。库(例如,C++的标准库libstdc++)。:将预处理过的源代码转换成汇编代码,这时的代码已经是针对特定架构的低级语言,但还不能直接运行。作为编译器套件,GCC 包括了一系列工具,从预处理器到编译器本身
提示:个人学习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编译过程
简单来说,使用GCC编译C/C++程序时,主要经历以下几个步骤:
-
预处理:读取源代码并进行初步处理,主要包括展开头文件(包含其他代码)、执行宏定义、去掉注释等。
-
编译:将预处理过的源代码转换成汇编代码,这时的代码已经是针对特定架构的低级语言,但还不能直接运行。
-
汇编:将汇编代码转换为机器语言,形成目标文件(
.o
文件),这是计算机可以直接识别和执行的二进制代码,但它还是独立于程序其他部分的。 -
链接:将所有目标文件(包括主程序和其他依赖库的目标文件)整合在一起,创建一个完整的可执行文件。这个过程中会解决函数和变量之间的引用关系,确保各个模块可以正确交互。
所以,当你在命令行敲下类似 gcc main.c -o myProgram
的命令时,GCC实际上是帮你完成了上述所有步骤,最终得到一个可以直接运行的可执行文件“myProgram”。
更多推荐
所有评论(0)