linux基础2

本文探讨了makefile在Linux项目管理中的关键作用,介绍了如何使用make进行文件编译自动化,并深入讲解了debug和release版本的区别,以及如何通过gdb进行gcc生成的debug可执行文件的调试。
摘要由CSDN通过智能技术生成

目录

7.makefile和make

7.2makefile和make的介绍

7.3make的使用规则

8.gdb调试

8.1Debug和Relese版本

8.2gcc生成的debug版本的可执行文件

8.3  通过gdb进入调试


7.makefile和make

7.2makefile和make的介绍

makefile文件:linux上的项目工程管理工具,可以实现自动化编译

后期一个项目工程里面的源文件不计其数,makefile文件里可以定义一系列的规则来指定哪一些文件先需要进行编译,哪些后编译,哪些重新编译,甚至更复杂的操作,makefie文件就像一个shell脚本,可以执行一系列命令

make:是一个命令,可以解释makefile文件中的指令

从另一个角度来说,一个人会不会写makefile表明他是否具有完成大型工程的能力

7.3make的使用规则

例如:现有三个文件 main.c max.c add.c

若通过gcc编译,修改一个文件,其他文件也需要重新编译

  • 此时通过make命令执行makefile文件,只会将修改过的文件或者依赖修改过文件的文件

使用make命令根据makefile文件的规则生成可执行文件:

  • 修改main.c中的值后使用make命令,未修改的文件不受影响

  • clean命令:保持整洁

8.gdb调试

8.1Debug和Relese版本

debug版本叫做开发者版本或可调式版本,生成的可执行文件里面包含调试需要用到的信息,开发人员,最常用的就是debug版本产生的可执行文件

relese版本是发行版本,面向用户的,里面没有调试信息,体积较debug版本的小

注意:gcc默认relese版本

8.2gcc生成的debug版本的可执行文件

debug版本的生成:因为调试信息是在编译阶段加入到可重定向的目标文件(.o)中的,所以必须在编译阶段就让他添加调试信息进来

命令信息如下:

第一种方式:首先gcc -c main.c -g(生成的中间文件main.o这是包含调试信息)

      然后通过gcc -o main main.o(生成debug版本的可执行文件)

第二种方式:一步生成,gcc -o main main.c -g

8.3  通过gdb进入调试

首先需要将源文件编译,链接生成debug版本的可执行文件,然后通过“gdb debug版本的可执行文件名”,就可以进入gdb调试模式

  • l   //显示当前文件的源代码
  • list filename: num  //显示filename文件中第nem行附近的源代码
  • b 行号   //给指定行加断点
  • info break//显示所有断点信息
  • delete  断点编号//删除对应的编号
  • r  //启动程序
  • q //退出调试
  • p buff  //临时打印数组所有元素的值
  • p val //临时打印变量val的值
  • p  &val //临时打印val的地址
  • p a+b //临时打印表达式的值
  • p *parr@num  //通过指向数组的指针打印数组的元素值
  • display buff //自动显示监视对象,操作格式和p一致
  • info display //显示所有自动显示监视对象的信息
  • undisplay 编号 //删除所有自动显示监视对象的信息
  • n  // (next)  //单步执行 逐过程(VS里F10)
  • s //进入到将被调用的函数中(逐语句)
  • finish  //跳出函数
  • c  //(continue)//继续执行,直到执行到下一个断点
  • ptype  val //显示变量的数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值