1,从源文件到可执行文件要经进4个阶段,预处理,编译,汇编,链接
gcc -E hello.c -o hello.i gcc -E hello.c 默认打到屏幕上
gcc -S hello.i -o hello.s gcc -S hello.c 默认生成hello.s
gcc -c hello.s -o hello.o gcc -c hello.c 默认生成hello.o
gcc hello.o -o hello gcc hello.c 默认生成a.out
2.<>到系统指定的头文件路径找头文件,""先在当前路径下找,如没有,再找系统路径
/opt
hello.c
#include <hello.h>
int main()
{
printf("hello.world!!\n");
return 0;
}
/opt/include
hello.h
#include <stdio.h>
指定头文件路径:
gcc hello.c -o hello -I/opt/include
3.优化(4级优化选项)
gcc -O0 optimize.c -o wyh
gcc -O1 optimize.c -o yh1
gcc -O2 optimize.c -o yh2
gcc -O3 optimize.c -o yh3
time ./wyh
time ./yh1
time ./yh2
警告:在调试的时候最好不使用任何优化选项,只有当程序在最终发行的时候才考虑对其进行优化。
4.gcc -g gdb.c -o gdb 要想调试,必须加入调试信息-g
gdb gdb
l 0 查看源文件
b 6 断点所设的地方,即为程序执行的下一条语句
info b查看断点
s n 单步调试(仅在函数处有意义)
r 全速运行
c 从单步状态恢复运行