gdb调试程序的使用 和 工程管理器make的使用及格式 和 项目模板的使用 以及 脚本shell的知识点

主要查功能错误
主要查功能错误 控制程序运行
在这里插入图片描述
首先用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

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex、WY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值