gcc是GNU Compiler Collection的简称,它是GNU项目中符合ANSI C标准的编译器。
gcc支持编译的后缀名
后缀名 | 对应的语言 | 后缀名 | 对应的语言 |
.c | C原始程序 | .ii | 已经过处理的C ++原始程序 |
.C | C++原始程序 | .s | 汇编语言原始程序 |
.cc | C++原始程序 | .S | 汇编语言原始程序 |
.cxx | C++原始程序 | .h | 预处理文件(头文件) |
.m | Objective-C原始程序 | .o | 目标文件 |
.i | 已经过处理的C原始程序 | .a/.so | 编译后的库文件 |
gcc编译流程
源代码(*C) |
预处理(Pre-Processing) |
编译(Compiling) |
汇编(Assembing) |
链接(Linking) |
可执行程序 |
gcc总体参数
参数 | 含义 | 参数 | 含义 |
-c | 只是编译不连接,生成目标程序 | -v | 显示gcc的版本信息 |
-S | 只是编译不汇编,生成汇编代码 | -I dir | 在头文件的搜索路径中添加dir目录 |
-E | 只进行预编译 | -L dir | 在库文件的搜索路径列表中添加dir目录 |
-g | 在可执行程序中包含调试信息 | -static | 链接静态库 |
-o file | 把输出文件输出到file中 | -llibrary | 连接名为library的库文件 |
gcc警告和出错参数
-ansi | 支持符合ANSI的C程序 |
-pedantic | 允许发出ANSI C标准所列的全部警告信息 |
-pedantic-error | 允许发出ANSI C标准所列的全部警告信息 |
-w | 关闭所有警告 |
-Wall | 允许发出gcc提供的所有有用的警告信息 |
-werror | 把所有的警告信息转化为错误信息,并在警告发生时终止编译 |