关于gcc/g++、gdb、vim的安装和浅识
想要对程序进行撰写和编译,这就需要一定的工具来辅助。
比如在Windows中我们可以通过Visual Stdio等IDE(集成开发环境)来对C/C++等其它高级计算机语言进行撰写和编译。
在Linux系统中**
vim进行文件的编辑
gcc/g++对程序进行编译(默认为release版本)
gdb对程序进行调试**
vim、gcc/g++/gdb的安装
在Linux系统中,有专门的软件包管理工具yum
Linux系统中的软件安装方式:
1、源码安装:手动安装一个个依赖关系库
2、工具安装:自动监测解决依赖关系库的安装
yum指令的基本操作:
1.查看能够安装哪些软件包
yum list|grep packe_name
2.查看已经安装了哪些软件包
yum list installed|grep packe_name
3.安装软件包
yum install packe_name
4.卸载已经安装的软件包
yum remove packe_name
vim编辑器
通过yum对vim进行安装的指令(需要联网):
yum install vim
vim共有12种模式,最常用的有三种:
1.普通模式(NORMAL):完成编辑一个文件最常见的操作
2.插入模式(INSERT):插入数据
3.底行模式(BOTTOM):保存、退出、vim 的设置
vim的模式切换:
普通模式-->插入模式
i 从光标所在位置开始插入
I 光标移动到行首开始插入
a 光标向后移动一个字符开始插入
A 光标移动到行尾开始插入
o 向光标所在行的下方添加新行开始插入
O 向光标所在行的上方添家新行开始插入
插入模式-->普通模式 Esc
普通模式-->底行模式 :
底行模式-->普通模式 Esc
gcc编译器
编译器:将高级语言(c语言)编译成为机器可以识别的指令代码
通过yum对gcc进行安装的指令(需要联网):
yum install gcc
编译过程:
预处理(-E): 去掉注释,展开所有代码
编译 (-S):语义语法纠错,将代码解释为汇编代码
汇编 (-C):将汇编代码解释成为机器指令代码
链接 :链接代码库,以及所有的目标文件,生成可执行程序
链接方式:
静态链接:链接静态库,链接时,将库中代码写入到可执行程序中(gcc默认为静态链接)
优点:运行时不依赖库的存在
缺点:占用资源较多,并且如果大量的程序静态链接,会在内存中造成代码堆余
动态链接(共享库/运行时库):链接动态库,连接时,只记录接口的位置符号信息并不拷贝代码
优点:占用资源少,在内存中需要大量的程序可以共享使用(共享库)
缺点:运行时需要依赖库的存在(运行时库)
gdb调试器
调试程序的前提:生成Debug版本程序,向程序种添加调试信息
通过vim对gdb进行安装的指令(需要联网);
yum install gdb
最常见的调试操作:
打印内容: p(print)
单步调试:
start 开始执行单步调试
r(run) 程序从头开始执行到结束
l(list) 查看执行行附近5行代码
l file:list --> l main.c:20
n(next)下一步:不进入子函数,直接将函数运行
s(step)下一步:跟踪进入子函数
until 直接运行到指定行
until file:ist --> until main.c:17
打断点(BreakPoint):
b(break)给指定文件,指定行打断点
b file:list --> b main.c:20
i(info) 查看调试信息
info break 查看断点位置
d(delete)删除(指定)断点
d file:list --> d main.c:20
p(print)查看变量内容
watch 变量监控
watch var_name
c(continue)程序继续运行
查看调用栈信息:
bt 查看函数的条用栈信息(快速定位函数崩溃位置)