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 版权协议,转载请附上原文出处链接和本声明。