1、什么是GCC
“Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。 gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。”
GCC 不仅支持 C 的许多“方言”,也可以区别不同的 C 语言标准;可以使用命令行
选项来控制编译器在翻译源代码时应该遵循哪个 C 标准。例如,当使用命令行参数
-std=c99 启动 GCC 时,编译器支持 C99 标准。
安装命令:版本>4.8.5

sudo apt install gcc g++

查看版本:

gcc/g++ -v/--version

2、编程语言的发展
请添加图片描述

3、GCC工作流程
程序的编译过程中,依次要进行预处理、编译、汇编、链接四个阶段

第一个阶段:预处理。
源代码文件(.h,.c,.cpp)经过预处理器生成预处理后源代码文件(.i)

第二个阶段:编译。
预处理文件(.i)经过编译器生成汇编代码(.s)

第三个阶段:汇编。
汇编代码(.s)经过汇编器生成启动代码、目标代码、库代码、其他目标代码

第三个阶段:链接。
启动代码、目标代码、库代码、其他目标代码通过连接器生成可执行程序(.exe,.out)

4、GCC常用参数选项

gcc编译选项 说明
-E 预处理指定的源文件,不进行编译
-S 编译指定的源文件,但是不进行汇编
-c 编译、汇编指定的源文件,但是不进行链接
-o [file1] [file2] / [file2] -o [file1] 将文件 file2 编译成可执行文件 file1
-I directory 指定 include 包含文件的搜索目录
-g 在编译的时候,生成调试信息,该程序可以被调试器调试
-D 在程序编译的时候,指定一个宏
-w 不生成任何警告信息
-Wall 生成所有警告信息
-On n的取值范围:0~3。编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-l 在程序编译的时候,指定使用的库
-L 指定编译的时候,搜索的库的路径。
-fPIC/fpic 生成与位置无关的代码
-shared 生成共享目标文件,通常用在建立共享库时
-std 指定C方言,如:-std=c99,gcc默认的方言是GNU C

版权声明:本文为qq_45135038原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45135038/article/details/123859400