生成特定格式文件
- -E 预处理: 预处理器的输出被送到标准输出而不是储存在文件里.
gcc -E test.c -o test.i //.i文件
- -S 编译: 产生汇编语言文件
gcc -S test.i -o test.s //.s文件
- -c 汇编: 编译为目标代码
gcc -c test.s -o test.o
- -o 链接:产生的可执行文件
gcc test.o -o test
代码优化
参数 | 含义 |
---|---|
-O | 主要进行跳转和延迟退栈两种优化 |
-O0 | 表示不做优化 |
-O1 | 为默认优化 |
-O2 | 除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等 |
-O3 | 包括循环展开和其他一些与处理特性相关的优化工作 |
gcc -O3 test.c
调试信息
- -g和-pg 调试
参数 | 含义 | |
---|---|---|
-g | 产生能被 GNU 调试器使用的调试信息以便调试你的程序 | |
-pg | 在编译好的程序里加入额外的代码。运行程序时, 产生 gprof用的剖析信息以显示你的程序的耗时情况。用“gprof execname gmon.out”命令打开 |
添加库和头文件
参数 | 含义 |
---|---|
-l | 用来指定程序要链接的库 |
-I(大写i) | 添加头文件目录 |
-L | 添加库文件目录 |
gcc test.c -lpthread