gcc是linux下最常用的编译器,他将完成预处理、编译、和连接4个步骤最终生成可执行代码。gcc文件常用后缀名如下表
后缀名 | 对应语言 | 后缀名 | 对应语言 |
---|---|---|---|
.c | C原始程序 | .ii | 已经预处理的c++原始程序 |
.C | c++原始程序 | .s | 汇编语言原始程序 |
.cc | c++原始程序 | .S | 汇编语言原始程序 |
.cxx | c++原始程序 | .h | 预处理文件 |
.m | Objective-C原始程序 | .o | 预处理文件 |
.i | 已经预处理的原始程序 | .a/.so | 编译后的库文件 |
gcc命令使用格式如下:
gcc [options] files-name-list
options选项有:
-ansi 根据ANSI标注
-c 跳过连接步骤,编译成目标文件(.o)文件
-g 创建用于gdb的符号表和调试信息
-l 库文件名 连接库文件
-m类型 根据给定的cpu类型优化代码
-o文件名 将生成的可执行文件保存到指定文件中,而不是默认文件a.out
-O[级别] 根据指定的级别对代码进行优化,数字越大优化级别越高
-pg 产生供GNU剖析工具gprog使用的信息
-S 跳过汇编和连接阶段,保留产生的汇编代码(.s)
-v 尽可能产生更多的输出信息
-w 忽略警告信息
-W 产生比默认模式更多的警告信息
-E 不做汇编、编译、链接,只做预处理
-I dir 在头文件搜索路径中添加dir目录
-L dir 在库文件搜索路径中添加dir目录
-static 链接静态库
-llibrary 链接名为library的库文件