GCC的编译流程
1预处理 :.c文件生成.i文件
gcc -E hello.c -o hello.i
2编译:.i文件生成.s文件
gcc -S hello.i -o hello.s
3汇编 : .s文件生成.o文件
gcc -c hello.s -o hello.o
4链接: .o生成可执行文件
gcc hello.o -o hello
gcc 的总结选项
-c 只编译不连接,生成目标文件“.o”
-S 只编译不连接,生成汇编代码
-E 只进行预编译,不做其他处理
-l dir 在头文件的搜索路径列表中添加dir目录
-L dir 在库文件的搜索路径列表中添加dir目录
GDB调试
gcc hello.c -o hello -g 进入jdb调试
l 查看所载入的文件
b 设置断点
info b 查看断点
r 运行程序
p 查看变量
n 单步运行
c 回复程序
makefile
语法: make【选项】【目标】【宏定义】
目标:依赖
(tab)命令
cc=gcc
file=test1.o test2.o
c_file=test1.c test1.c
$^是依赖名字
$@目标名字
cc:$(file)
$cc $^ -o $@
clean:
rm *.o cc
clear
test.tar.gz:$^
tar -cvzf $^ $@
clear