GCC
原名为
GNU C
语言编译器
(GNU C Compiler)
,因为它原本只能处理 C语言。
GCC
很快地扩展,变得可处理
C++
。后来又扩展能够支持更多编程语言,所以改名GNU编译器套件
(GNU Compiler Collection)
。
一、gcc主要特征
- gcc是一个可移植的编译器,支持多种硬件平台
- gcc不仅仅是个本地编译器,它还可以跨平台交叉编译
- gcc是有多种语言前端,用于解析不同的语言
- gcc是按模块化设计的,可以加入新语言和新CPU架构的支持
- gcc是自由软件
二、gcc编译的过程
gcc编译过程的流程:
编译的总过程 gcc hello.c -o app
1. 预处理 gcc -Wall -E hello.c -o hello.i
2. 编译 gcc -Wall -S hello.i -o hello.s
3. 汇编 gcc -Wall -c hello.s -o hello.o
4. 链接 gcc -Wall -g -o hello
三、gcc常用的编译选项
选项 | 作用 | 生成文件 |
---|---|---|
-o | 产生目标文件(.i、.s、.o、可执行程序) | 可执行程序 |
-c | 编译源码并在最后生成可执行程序 | *.o |
-E | 只运行C预编译器 | *.i |
-S | 生成汇编语言文件后停止编译 | *.s |
-g | 在目标文件中添加调试信息,以便于gdb之类的调试程序 | |
-Wall | 使gcc对源文件的代码有问题的地方发出警示 | |
-Idir | 将目录加入搜索头文件的目录路径 | |
-Ldir | 将目录加入搜索库的目录路径 |
四、gcc编译动态库
参看此篇文章:
https://blog.youkuaiyun.com/qq_43630810/article/details/105696429