Linux开发工具实现CC编程
Linux开发工具实现C/C++编程
Linux开发工具实现C/C++编程
文章目录
1.软件包管理器:yum
如何安装软件
通过yum完成gcc的安装:sudo yum install lrzsz
然后敲“y”确认安装,出现"complete",则安装成功
如何卸载软件
命令:sudo yum remove lrzsz
2.编辑器:vim
1.常见的三种模式:
- 正常模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
- 插入模式:只有在Insert mode下,才可以做文字输入,按[i]进入插入模式,按「ESC」键可回到正常模式。
- 底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+:即可进入该模式
- 按[q]退出,[w]保存,[wq]退出并保存,[wq!]强制退出并保存
2.正常模式下的快捷操作
移动光标:
- vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
- 按「G」:移动到文章的最后
- 按「 $ 」:移动到光标所在行的“行尾”
- 按「^」:移动到光标所在行的“行首”
- 按「w」:光标跳到下个字的开头
- 按「e」:光标跳到下个字的字尾
- 按「b」:光标回到上个字的开头
- 按「#l」:光标移到该行的第#个位置
- 如:5l,56l
- 按[gg]:进入到文本开始
- 按[shift+g]:进入文本末端
- 按「ctrl」+「b」:屏幕往“后”移动一页
- 按「ctrl」+「f」:屏幕往“前”移动一
- 按「ctrl」+「u」:屏幕往“后”移动半页
- 按「ctrl」+「d」:屏幕往“前”移动半页
删除文字:
- 「x」:每按一次,删除光标所在位置的一个字符
- 「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
- 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
- 「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
- 「dd」:删除光标所在行
- 「#dd」:从光标所在行开始删除#行
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区
-「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止
撤销上一次操作
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
「ctrl + r」: 撤销的恢复
更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
跳至指定的行
「ctrl」+「g」列出光标所在行的行号
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
3.简单vim配置
在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。命令:vim /etc/vimrc
设置语法高亮: syntax on,显示行号: set nu,设置缩进的空格数为4: set shiftwidth=4
按[i]输入:
按[esc]退出编辑模式后按[shift+:]再按[wq]保存并退出
测试效果:
一个超好用的插件:vimforcpp,直接输入命令安装:curl -sLf -o ./install.sh && bash ./install.sh
4.其他
多行注释:
1.ctrl +v
2.选中需要注释的行,使用hjkl移动光标
3.shift + i :进入插入模式
4.输入注释符号
5.esc
多行去注释:
1.ctrl+v
2.选中需要去注释的行当中的注释字符,使用hjkl移动光标
3.x删除掉
3.编译器:gcc/g++
1.gcc编译C,g++编译C++
2.编译的4个过程:预处理,编译,汇编,链接
预处理:宏替换,头文件展开,删除注释,条件编译
命令:gcc -E test.c -o test.i(选项“一E”,该选项的作用是让 gcc在预处理结束后停止编译过程;选项“-o”是指目标文件;“.i”文件为已经过预处理的C原始程序)
编译:将源文件生成为汇编代码
命令:gcc -s test.c/test. i -o test.s
汇编:将汇编代码转化成为二进制代码
命令:gcc -c test.c/test.i/test.s -o test.o
链接:将若干个二进制代码(.o)或者库文件链接起来生成可执行程序或者库文件
命令:gcc test.c -o mytest(mytest:就是可执行程序的名字)
4.调试器:gdb
1.两种模式:
debug模式和release模式
因为Linux gcc/g++出来的二进制程序默认为release模式,所以要使用gdb调试时,要给后面加上-g,即:
2.进入gdb调试的基础方法
l:查看源码
l [func name]:查看某个函数的源码
r:执行程序
- n:逐过程执行(不会进入到被调用函数的内部)
s:逐语句执行(会跳转到函数的内部进行执行)
b [源代码中行号]:打断点
- i b:查看断点
- c:继续执行
![]()
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
enable breakpoints:启用断点
info(i) locals:查看当前栈帧局部变量的值
quit:退出gdb
5.自动化构建项目:make/Makefile
1.介绍:
make:是一个命令
makefile:是一个文件
过程:make会根据makefile的内容进行解析,编译程序,从而生成可执行程序
2.makefile的文件格式
目标对象:依赖对象
编译命令
如:
![]()
3.makefile的工作原理
- make会在当前目录下找名字叫“Makefile”或“makefile”的文件来进行解析,如果找不到则报错
- 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“hello”这个文件,并把这个文件作为最终的目标文件
- 如果生成了目标对象,则后续文件当中的内容不解析,如果为了生成第一个目标对象,需要先生成依赖对象,则在makefile文件当中查找生成依赖对象的方法,如果发现依赖的对象不存在,则报错返回
- 若依赖对象的最后一次修改时间小于目标对象的最后一次修改时间,则不生成
4.makefile文件当中的自定义变量和内置变量
内置变量:
内置变量
$^:所有依赖对象
$@:目标对象
$<:代表第一个依赖对象
- 自定义变量: $()解引用
![]()