Linux笔记 常用工具vim; gcc编译器 makefile项目工具

常用工具vim

vim共有12种模式;常用的三种;
普通模式
低行模式
插入模式
模式切换;
普通模式》=插入模式;i
i;从光标所在的位置开始插入. I光标移动到行首,开始插入
a;光标移动到下一个字符开始插入,A;光标移动行尾巴=开始插入,
o;在光标所在行的下方新建一个开始插入,
插入模式》=普通模式;esc
普通模式》=底行模式;;/
底行模式》=普通模式;esc
底行模式下的操作,
;w ;wq ;q ;q!保存退出操作;
普通模式下的操作
光标移动;

hjkl;左下上右      w/b按单词移动,crtl+f/b 上下翻页 gg/c

复制;

yy 复制光标所在行,    nyy 从光标所在行开始复制n行数据;

粘贴;

p向光标所在行下方粘贴;    P想光标所咋行上方粘贴。

*gcc;编译器

gcc将高级语言(C语言)编译成电脑能识别言。

预处理;去掉注释展开代码。
编译;语法语义纠错,将C语言代码解释成汇编语言代码。
汇编;将汇编代码解释成机器指令。
链接;链接库文件中的代码;
静态链接;*链接动态库, 将库中代码拷贝到程序中,程序比较大,但是运行时不需要依赖静态库的存在。
静态库如果多个程序使用了同样的静态库,运行时程序被加载到内存中,会出现多份沉余代码。

动态链接;*链接动态库, 记录函数位置信息,程序比较小,但是运行时需要依赖动态库的存在。
gcc默认链接是动态链接。

gcc常用选项;

   -E  只进行预处理        -S只进行编译         -C直径性汇编           -O用于指定生成的文件名称

gdb调试器;
gdb’调试程序的前提;生成debug版本程序‘ gcc -g
gcc默认生成的是release发布版程序,可执行程序中没有加入调试符号信息。
调式程序的一种bug。
1;加载程序;
gdb加载程序的时候如果程序有程序运行参数,不能加载的时候

     gdp./main

2;开始调试

     run   直接运行程序  ,                     start 开始逐步调试

3;

     list   查看代码    ,
     n      下一步  不跟踪进入函数,直接将函数运行完毕。
     list   file:line
     s      下一步   跟踪进入函数
     until  直接运行到指定行 , 
     until   file:line

4;断点相关

      break     打断点             ,info查看调试信息
      break   file:line          
      break function name
      info break    查看断点信息
      print   查看变量内容        ,  continue 继续运行    ,    delete
      print var                     ,                        delete  break_id
      watch   变量监控,当变量内容改变时,停下来,
      watch var

5;查看调用信息;

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

makefile;普通文本文件,但是不普通的是makefile记录的是项目流程规则
make;一个程序–makefile解释器;解释makefile中的项目构建规则;完成项目的构建
在当前目录下敲击make命令,make程序到当前目录找到makefile文件逐行解释
makefile文件名称大小写不敏感
makefile基本编写规则:
目标对象:【依赖对象】
tab要执行的命令
make的解释规则:
make在makefile中寻找第一个目标对象;
目标对象不存在:则报错退出
目标对象存在:检测是否有依赖对象
没有依赖对象:检测外部是否有目标文件(检测目标对象是否已经生成了)
目标对象未生成:执行要执行的命令(生成目标对象的命令
目标对象已生成:报错,目标对象已经有了,不需要重新生成
有依赖对象:检测外部是否有目标对象文件
目标对象未生成:执行要执行的命令(生成目标对象的命令)
目标对象已生成:在makefile继续向下查找依赖对象的生成规则
依赖对象在下一条规则中作为目标对象被生成,进而生成第一个目标对象后退出
目标对象不存在;
则直接执行命令生成
makefile预定义变量:$@ $< $^

   $@;             目标对象
   $^              所有的依赖对象
   $<              依赖对象中的第一个

伪对象;不管对象是否最新,是否存在,每次都需要需要为对象执行生成命令
声明伪对象:PHONY:clean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

童无极

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

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

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

打赏作者

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

抵扣说明:

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

余额充值