一 简介
GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套GNU编译器套装以 GPL 及 LGPL许可证所发行的自由软件,也是 GNU 计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。
二 编译过程
1. 预处理(Pre-Processing)
2. 编译(Compiling)
3. 汇编(Assembling)
4. 链接(Linking)
.c: C语言源代码文件
.a: 由目标文件构成的库文件
.C, .cc或.cxx: C++源代码文件
.h: 头文件
.i: 已经预处理过的C源代码文件
.ii: 已经预处理过的C++源代码文件
.o: 编译后的目标文件
.s: 汇编语言源代码文件
.S: 经过预编译的汇编语言源代码文件
2.3 整个编译过程如图2.1所示:
图2.1
三 gcc命令详解
gcc [options] [filenames]
-o [output_filename]: 目标文件名
-c: 只编译出.o
-g: 编译带有调试信息,GDB调试用
-O: 优化
-O2: 更优化
-I [include_folder_path]: 将目标目录加入gcc标准头文件目录
注:#include<>: 从gcc标准头文件目录寻找文件,如/usr/include/
注:#include"": 当前目录
-L [library_folder_path]: 加入库文件目录路径
-l [lib_name]: 引用库文件,路径需要在默认库路径或-L添加
-static: 静态库链接文件
-Wall: 生成所有警告信息
-w: 不生成任何警告信息
-D: 相当于define