目录:
- 为什么调试的时候需要编译选项中添加-g
- 理解Linux下软件安装的几种方式(源码安装,rpm安装,yum安装)
1.
用gdb进行调试纠错前必须要在编译选项中添加“-g”,“-g”标志是对程序进行调试性编译时常用的选项。我们需要给每一个需要调试的源文件都加上这个选项。它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示哪些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。这个程序和objdump提供的功能相似,但是它显示的信息更为具体,并且它不依赖BFD库(BFD是一个GNU项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件),所以即使BFD库有什么bug存在的话也不会影响到readelf程序。运行readelf时,除了-v和-H之外,其他的选项必须有一个被指定。
命令参数:<1>-h或者--file-header。显示在elf文件头里包含的所有信息。
<2>-l 显示程序头表信息, 包括有几个段,每个段的属性,以及每个段中包含有哪几个节
<3>-S 显示节区表内所有的信息,包括每个节的属性
<4>-h 显示所有头的信息,包括elf文件头,程序头和节头,即“-l,-h,-S”的组合。
<5>-s 显示符号表的信息,包含静态符号表和动态符号表。如果指关心动态符号表,可以直接用“-d”。
<6>-r 显示所有定位入口的信息。
---------------------
~以上调研内容来自‘sweet candy’博客~
2.
Linux下软件安装的方式主要有源码安装、rpm安装、yum安装,而常用的安装包有以下三种:
1> tar包,它使用的是UNIX系统的打包工具tar打包的。
2> rpm包,它是Redhat Linux提供的一种包封装格式。
3> dpkg包,它是Debain Linux提供的一种包封装格式。
常见的安装方法
1.源码安装
几乎所有的开源软件都支持在Linux下运行,而这些软件一般都源码形式发放,只需要Linux安装了gcc、make、automake、autoconf都支持源码安装。
源码安装的方式
cd 源码所在行
./configure [opts]
make
make install
源码安装的优点
文档齐全
因为可以定位到代码,所以debug方便
本机兼容性好
源码安装的缺点
编译麻烦
缺乏自动依赖管理,软件升级麻烦
2.rpm安装
rpm包安装几乎在所有Linux平台上都支持,它就像Windows下的exe安装文件一样,各种文件已经编译好,并打包,哪个文件在哪个文件夹里面都已经被指定好,所以很方便。
rpm安装的方式(安装非常简单)
rpm -i xxx.rpm
通过上面的命令我们便可以完成rpm包的安装。
rpm包卸载方式
rpm卸载只需如下命令:
rpm -e //包名
3.yum安装软件包
yum并不是一种包,它是安装包的一个软件,在CentOS中是软件包的管理器,yum也对依赖关系进行管理,但是必须要在联网的情况下完成。
yum包安装的方式
yum -y install
yum包卸载的方式
yum remove 包名
安装完成后执行的方法
- 有些软件安装后会自动在应用程序列表里加上快捷键,和windows一样,到那里找就行了。
- 如果在应用程序列表里找不到的话,可以直接在 / 开始 / 运行命令里输入命令:启动命令一般就是软件名,如firefox,realplay,xmms等
- 也可以打开一个shell终端,输入软件名,和在“运行命令”里一样。如果不知道命令全程的话,可以输入开头的字母,然后按tab键查找,系统会自动显示以输入字母开头的所有命令 /
- 你也可以直接到安装目录下运行启动文件,Linux下的可执行图标和shell终端图标很像
- 到 / usr / bin目录里找安装的软件启动文件执行命令。Linux系统把所有可执行的文件命令在 / usr / bin目录里都作了启动连接,你可以去那个目录寻找你安装的文件的启动命令,双击启动
---------------------
~以上调研内容来自‘ArchyLi’博客~
~bye~