在命令模式下进行文本编辑的效率非常高,所以建议尽量在命令模式下编辑 。
4.插入模式(Insert mode)命令模式按a/i/o进如插入模式,插入模式与Windows下正常的文本编辑没什么区别,此处不再赘述 。
5.底行模式(last line mode)命令模式shift+;进入底行模式,常用的命令如下:
set nu:设置行号set nonu:取消行号w:写入(保存)w!:强制写入(但也有可能写入不成功)q:退出q!:强制退出!+其他命令:在底行模式下,输入!后即可执行ls,ll,gcc等命令,即不退出vim就看执行命令行的命令复制代码vs命令+filename:分屏显示,若filename不存在,则会新建 。

文章插图

文章插图
通过ctrl+w+w可在多个选项卡之间切换 。
注意分屏不仅仅可以分两个,分屏可以分许多个 。

文章插图
底行模式下退出分屏时,光标在哪个文件就退出哪个文件 。
三、编译器gcc/g++gcc用来对C语言文件编译,g++用来对c++文件编译,选项几乎是一样的,下面以gcc为例 。
1.从源文件到可执行文件从一个.c为后缀的源文件到一个.exe为后缀的可执行文件需要经过下面四个步骤 。
(1)预处理(-E)主要包括:头文件展开、去注释、宏替换、条件编译 。在Linux中可以通过gcc的–E选项来让源文件在预处理结束后停止并生成同名的.i后缀文件 。
(2)编译(-S)检查代码的规范性、是否有语法错误等,以确定代码实际要做的工作,在检查 无误后,把C语言代码翻译成汇编语言 。在Linux中可以通过gcc的–S选项来让源文件在编译结束后停止并生成同名的.s后缀文件 。
(3)汇编(-c)生成机器可识别代码,把编译阶段生成的.s文件转成目标.o文件,转化结束后,文件是二进制目标文件 。在Linux中可以通过gcc的–c选项来让源文件在汇编结束后停止并生成同名的.o后缀文件 。
(4)链接(无选项)将代码中库函数的调用和库中库函数的实现关联起来 。
这里要介绍一个概念:函数库 函数库一般分为静态库和动态库两种 。
静态库链接时把库文件的代码全部加入到可执行文件中,因此生成的文件占用的空间比较大,但在运行时也就不再需要库文件了,这样程序的可移植性强 。静态库后缀名一般为.a 。
动态库链接时不把库文件的代码加入到可执行文件中,而是在程序执行时由链接文件加载库,生成的文件体积小、速度快,但可移植性差 。动态库一般后缀名为.so 。
gcc在链接时默认使用动态库 。
2.常用选项除了上面的-E、-S、-c选项外,下面还有一些常用选项 。
-static:此选项对生成的文件采用静态链接 -O0、-O1、-O2、-O3:编译器优化选项的4个级别,-O0表示没有优化,-O3优化级别最高 -w:不生成任何警告信息 。-Wall:生成所有警告信息 。-o+filename:将生成的文件命名为filename
四、调试器gdb下面以一个简单的从1加到100的代码演示调试,源文件生成的可执行文件为Mytest 。
代码如下:

文章插图
直接gdb+被调试文件名进入调试,如下

文章插图
但最后提示没有调试信息 。这里是因为在Centos 7 gcc中默认生成的可执行程序是release版本的,不可被调试 。通过编译时添加-g选项让程序成为debug版本 。

文章插图
1.显示代码list/l

文章插图
2.运行r

文章插图
3.断点b、查看断点info、删除断点d

文章插图
4.逐过程n(不进入函数)、逐语句s(进入函数)

文章插图
5.临时查看变量的值p

文章插图
6.添加查看display
推荐阅读
- 汽车紧固夹紧力连接与浮动连接方式
- 奶瓶买pp还是pa
- 卫星|我国成功发射高分三号03星:实现1米分辨率、1天重访
- 金花茶树怎么种?
- NAT及PAT 网络地址转换
- TCP、UDP以及HTTP的简单讲解
- Mac mini 2012完全拆解教程:双硬盘、换主板、换电源 一篇全搞定
- 华为三层交换机配置心得
- 人手必备!勒索病毒应急自救手册
- php三个函数、两种选择防止sql注入
