首先说以下linux中常见的几种文件:
.h - C语言源代码头文件
.c - 预处理前的C语言源代码文件
.i - 预处理后的C语言源代码文件
.s - 汇编语言文件
.o - 目标文件
.a - 静态库文件
.so - 共享库(动态库)文件
查看gcc版本:
gcc -v
编译过程中使用的gcc命令:
编辑 -> 预编译 -> 编译 -> 汇编 -> 链接
1) 编辑: vi hello.c -> hello.c
2) 预编译:gcc -E hello.c -o hello.i -> hello.i -+
3) 编译: gcc -S hello.i -> hello.s | GCC
4) 汇编: gcc -c hello.s -> hello.o | 工具链
5) 链接: gcc hello.o -o hello -> hello -+
gcc生成调试信息:
gcc -g hello.c
其他gcc参数命令:
gcc [选项参数] 文件
-c - 只编译不链接
-o - 指定输出文件
-E - 预编译
-S - 产生汇编文件
-pedantic - 对不符合ANSI/ISO C语言标准的
扩展语法产生警告
-Wall - 产生尽可能多的警告。
范例:gcc -Wall wall.c
-Werror - 将警告作为错误处理。
范例:gcc -Werror werror.c
-x - 指定源代码的语言。
范例:gcc -x c++ cpp.c -lstdc++
-g - 生成调试信息
-O1/O2/O3 - 优化等级
gcc编译多个源文件:
gcc [选项参数] 文件1 文件2 ...
gcc制定头文件搜索路径:
gcc -I