linux常用工具

vim

vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

vim和Emacs对比:
vim优点:
编辑快速,按键更简洁。
vim缺点:
需要不停地切换模式;
插件环境混乱。

Emacs优点:
Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。而Lisp是种很有生命力的编程语言。所以Emacs不再限于写程序,有句夸张的话说:Emacs是伪装成编辑器的操作系统。
Emacs缺点:
启动时间慢。

gcc

gcc是一款编译器,gcc将高级语言编译成机器可以识别的语言 (gcc默认链接方式是动态链接)

gcc常用选项
-E 只进行预处理
-S 只进行编译
-c 只进行汇编
-o 用于指定生产的文件名称
-static 静态链接

gcc操作
!gcc 执行最近一次gcc操作

除了gcc外还有如MSVC,Clang,IBM Xl C/C++等等同样优秀的编译器。

gdb

gdb是一款调试器, 调试程序的运行过程即调试bug。

为什么调试的时候需要编译选项中添加 -g?
使用gdb调试时,需要向程序中加入调试符号信息,这是程序调试前提。而gcc默认生成的是release发布版程序,可执行程序中没有加入调试符号信息。所以添加-g选项生成debug版可执行程序。

gdb调试步骤:
0.向程序中加入调试符号信息(程序调试前提)
gcc默认生成的是release发布版程序,可执行程序中没有加入调试符号信息
gcc -g 生成debug版可执行程序
1.加载程序 gdb ./main
2.开始调试
run/r 直接运行程序
start 开始逐步调试
3.常见操作
-list 查看代码
用法: list file:line
-n 下一步 不跟踪进入函数,直接将函数运行完毕
-s 下一步 跟踪进入函数
-until 直接运行到指定行
用法:until file:line
4.断点相关
-break/b 打断点
用法:b file:line / break function_name (给函数打断点)
-info 查看调试信息
用法:info break
-print/p 查看变量内容
print var
-continue 继续运行
-delete 删除断点
用法:delete break_id
-watch 变量监控,当变量内容改变时,停下
用法:watch var(变量名称)
5.查看调用栈信息
backtrace/bt:查看函数调用栈信息—快速定位程序崩溃位置

make/Makefile: 项目自动化构建工具

Makefile:普通文本文件,但是不普通的是makefile中记录的是项目构建流程规则
make:一个程序—makefile的解释器;解释makefile中的项目构建规则;完成项目的构建;
在当前目录下敲击make命令,make程序到当前目录下找makefile文件,逐行解释
makefile文件名称大小写不敏感

makefile基本编写规则:
目标对象:[依赖对象]
tab键 要执行的命令
make解释规则:
make打开makefile文件,在makefile中寻找第一个目标对象名称
-没有找到:认为没有要生成的对象,报错退出
-找到了:接下来判断目标对象文件是否存在
-目标对象文件存在:判断是否有依赖对象名称
-没有依赖对象名称:认为目标对象已生成,不需要重新执行命令生成
-有依赖对象名称:判断依赖对象文件是否存在
-存在:判断目标对象文件与依赖对象文件时间关系
-不存在:在makefile继续向下查找依赖对象生成规则,依赖对象在下一条规则中作为目标对象被生成,进而生成第一个目标对象后退出
-目标对象文件不存在:直接执行命令生成
makefile预定义变量:$@ $< $^
$@:目标对象
$<:依赖对象当中的第一个
$^:所有的依赖对象
伪对象:不管对象是否最新,是否存在,每次都需要为对象执行生成命令
声明伪对象: .PHONY:对象名称

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值