编译的四个步骤:
gcc -E xx.c -o xx.i
编译:检查语法错误,词法错误,将.i文件转换成.s汇编文件。
gcc -S xx.i -o xx.s
汇编:将汇编文件转换成二进制文件(不可执行)
gcc -c xx.s -o xx.o
链接:链接库文件,将不可执行的二进制文件转换成可执行的二进制文件。
gcc xx.o -o xx
gcc xx.c 默认生成a.out
-o: 生成一个新名字的可执行文件
-
gdb调试工具
gcc -g xx.c 生成 a.out
gdb a.out
r: 运行代码
l: 查看文件
b 行号或者函数名:添加断点
info b:查看断点情况
d num(断点编号):删除断点
p 变量名:查看变量的值
s/n: 单步运行,s会进入子函数顺序执行;单步跳过,n不会进入子函数
c: 执行到下一个断点的位置
help:帮助
q: 退出
步骤:代码写好后,先通过gcc -g进行编译代码,没有错误后,可以通过gdb a.out进行调试,输入l查看文件内容,通过b设置断点,输入r进行运行,n或s进行单步调试,q退出
meke编译工具
make:工程管理器,顾名思义,是指管理较多的文件
make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作。
Makefile或makefile时make读取的唯一配置文件。
makefile根据以下步骤编写:
gcc -c xx.c -o xx.o
gcc xx.o -o xx