主要查功能错误 控制程序运行
首先用gcc -g 将调试命令加入程序
然后启动gdb 设置断点 然后run
info break 查看断点信息
n表示往下单步运行
print 加变量 查看变量当前值
continue 表示继续运行到下个断点
q 退出调试模式
list 默认每次显示十行代码
list加行号 表示从这行开始显示代码(在调试模式下查看代码)
start 开始执行程序,只开始第一句 然后等命令
set 设置变量值
clear 什么也不加 断点全部删除
加断点所在行号 删除断点
而delete 加断点的编号(第几个断点)
enable 激活断点
disable 使断点失效
函数返回return 有两层含义
一个值的返回
一个流程返回(可以没有值的返回 但一定要有流程返回)
工程管理器-make
当makefile和Makefile都存在时,按小写的算
最好在makefile后面加个0或者其他字母
例如:hello:hello.o //hello是终极目标 生成这个目标 要依赖hello.o
所以下面要写hello.o:hello.c 写出hello.o目标 其依赖hello.c 所以要执行gcc -c hello.c 这个命令 来生成hello.o
makefile执行时是从下往上执行
makefile中有无数个目标 但只有一个终极目标
第一个目标就是终极目标 按照需求关系写目标
需求的写上面 被需求的写下面
没人要的目标 且不依赖其他目标 这种目标叫伪目标
想要执行伪目标 用make 后面加伪目标名
解释:
我们要的是最后main 它是终极目标 生成main需要依赖main.o sub.o add.o等 所以后面要写其它依赖的条件
然后执行命令 这命令就是利用它依赖的文件才生成目标
然后发现 main.o sub.o等文件 还不存在
所以将这些当作目标写在下面,然后他们依赖各自的.c文件 所以写出各自的依赖条件 并执行命令 使其目标生成
编写成功 执行make 则完成全部编译 再./main 执行
.PHONY是伪目标声明 后面加上所以伪目标名称
使用变量定义更方便 且不容易漏
取消回显:就是使用make的时候不将makefile中的命令显示在终端窗口
项目模板
1.将模板考到当前目录(使用共享文件夹 然后将其cp到所需目录下)
2.删除两个 不是我们自己项目的子目录 如果我们需要就自己建 比如下面第6步的add sub等3.将include中的myhead.h中的头文件内容更改为自己需要的头文件
4.进入main中的src子目录 更改其中的主函数 换成我们自己要写的项目主函数
并将其中已经生成的目标文件main.o删除 因为不是我们自己的 对我们项目没用 我们项目到时候会自己生成
5、要更改scripts下的Makefile 中的项目名 和所需的函数
6、创建我们项目所需的函数add sub mul div 每个函数目录下的结构和main下面的结构相同 都是一个相同的Makefile和一个src子目录
src中装的是各自的程序代码
所以将main下面的Makefile复制到每个函数目录下 并在每个函数目录下mkdir一个子目录src 并在src中vim写出各自的程序
就搞定了 然后make
脚本shell