编译、调试、makefile工程
一、GCC
1.GCC (GNU C Compiler)
官网https://gcc.gnu.org/
GCC是由GNU开发的编程语言编译器,GNU编译器套件包括C、C++、Java等,也包括了这些语言的库。
源代码文件(.c)经过编译得到可执行的应用程序。
2.GCC编译流程
1.预处理
gcc -E -o 目标文件1.i 源代码文件.c
生成后缀为.i的文件,原始C语言程序。
2.编译
gcc -S -o 目标文件2.s 目标文件1.i
生成后缀为.s的汇编语言的原始程序
3.汇编
gcc -c -o 目标文件3.o 目标文件2.s
将汇编语言转化成后缀为.o的二进制文件
4.链接
gcc -o 目标文件3.o 目标文件
将二进制文件与库文件进行链接,生成可执行的目标文件
5.执行
也可以一次性编译完成
二,GDB 调试
1.调试器功能
1.能够运行程序,设置程序运行的参数
2.能够让程序在指定条件下停止运行
3.能够在程序停止时检查所有参数情况
4.能够根据指定条件改变程序运行
2.调试
程序编译时需加-g
gcc -g test.c -o test
1.进入GDB
gdb test
2.查看文件
l或ilst
3.设置断点
b + 行号 或 break + 行号
4.查看断点处情况
info b 或info breakpoints
5.运行代码
r (run) 或 加上行号可以从指定位置开始运行
在断点处停止,按c继续运行。
6.查看变量值
p + 变量名
7.观察变量
watch n
8.单步运行
n(next)
9.程序继续运行
c(continue)
10.退出GDB
q(quit)
三、make工程管理器
makefile是由规则构成的
编写规则格式:
target1,target2 ……:dependence-file1,dependence-file2……
command1
command2
target:目标体(目标文件、可执行文件等)
depend-file:创建目标体所依赖的文件
command:要运行的命令(有tab缩进并独占一行)
#makefile
hello:hello.c
gcc hello.c -o hello