- gcc:一个工具集合,包含预处理器,编辑器,汇编器,链接器等组件
说明:当不使用任何选项时,gcc将会生成一个名为a.out的可执行文件
- gcc选项
- gcc -E 预处理 .i
- gcc -S 编译成汇编代码 .s
- gcc -c 汇编成目标代码 .o
- gcc -o 链接成可执行代码 .out/.exe
- gcc -E 只进行预处理
- gcc -E test.c 只进行预处理
- gcc -E test.c -o test.i 将test.c预处理后的代码放在test.i中
- gcc -S 只进行编译,不进行汇编,生成汇编代码文件.s
- gcc -S test.c //生成test1.s
- gcc -S test.i
- gcc -S test.i -o test.s //-o选项用来指定输出文件名,将test.i编译之后的汇编代码放在test.s中
- gcc -c 可以将每一个源文件编译成目标文件(.o文件),但不进行链接
- gcc -c test.c //生成test.c
- gcc -c test.s
- gcc -o 格式:gcc -o file file.c 将文件file.c编译成可执行文件file
- gcc -o test test.c
- gcc -o test test.o
- gcc -g 在目标代码中加入供调试程序gdb使用的附加信息
- gcc -Wall 显示警告信息
- gcc -Wall -o test test.c
- gcc -g -o test test.c
- 库(Library)
- 静态库(.a)文件 在程序的链接阶段被复制到了程序中(gcc -o test test.c libtest.a)
- 动态库/共享库(.so)文件 程序在运行时由系统动态加载到内存中供程序调用(gcc -o test test.c libtest.so)
- gcc优化选项
- gcc -O0:缺省情况,不优化
- gcc -O1:一级优化
- gcc -O2:
- gcc -O3:
- 文件名及其文件类型:
文件名后缀 | 文件类型 |
.h | 头文件 |
.c | C源文件 |
.i | 预处理后的c源文件 |
.s | 汇编程序文件 |
.o | 目标文件 |
.a | 静态链接库 |
.so | 动态链接库 |