gcc 编译器命令
- gcc 编译程序过程包含
- 预处理(.i文件)
- 编译(.S文件)
- 汇编(.o文件)
- 链接(可执行文件)
graph LR
main.c --> |预处理|main.i --> |编译|main.S --> |汇编|main.o
start.c --> |预处理|start.i --> |编译|start.S --> |汇编|start.o
main.o --> |链接| main可执行文件
start.o --> |链接|main可执行文件
- 编译过程
- 预处理:
gcc -E hello.c -o hello.i
- 编 译:
gcc -S hello.i -o hello.s
- 汇 编:
gcc -c hello.s -o hello.o
- 链 接:
gcc hello.o xxx.o -o hello
- 常见使用示例
gcc hello.c
直接输出为二进制文件 a.out
,通过 ./a.out
执行
gcc hello.c -o hello
输出名为 hello
的可执行文件,通过 ./hello
执行
gcc -c hello.c
输出 hello.o
文件,用于链接
gcc hello.o main.o -o main
链接多个编译文件,生成 main
可执行文件
- 编译常用选项
- -Wall 打印警告信息
- -w 忽略所有警告信息
- -O1,-O2,-O3 表示程序优化等级,O3 最高
- -g 用来产生调试信息,供 gdb 调试器使用