readelf命令和Linux中进度条的实现及软件安装方式

1. 为什么调试的时候需要编译选项中添加-g,以及readelf命令

加入-g选项可以将调试信息加入到到可执行文件中,有了函数名,行号等的调试信息就可以设置断点进行调试。如果没有-g选项,你将看不见函数名,变量名,所代替的全是运行时的内存地址。

readelf:主要用来分析ELF文件,ELF文件是Linux的中可执行文件的格式,PE是的Windows中可执行文件的的格式。

a.out显示可执行文件a.out的全部信息

-h a.out显示可执行文件a.out的文件头信息,包括ELF魔数,数据存储方式,ELF重定位类型,入口地址,程序头入口和大小,文件头大小,段表的位置和长度以及段的数量等等。

-S a.out显示段表相关信息,每段的信息具体段名,段长度,短类型,在文件中的偏移量以及段的其它属性。

-a a.out显示符号表相关信息,包括符号名,符号大小,符号类型和绑定信息以及符号所在段等。

-r a.out显示可重定位段相关信息。

-n a.out显示注释段相关信息。

-d a.out动态显示动态段的相关信息

-v显示重新生成版本相关信息

-h显示帮助

2.在Linux的下实现进度条程序。通过生成文件进行编译

#include <stdio.h>
#include <unistd.h>
#define NONE“\ e [0m”
#define BLUE“\ e [0; 34m”
int main()
{
     char buf [101] 
     int i;
     const char * label =“| /  -  \\”;
     for(i = 0; i <100; i ++)
     {
         buf [i] ='#';
         printf(BLUE“[% -  100s] [%d %%% c] \ r”NONE,buf,i + 1,label [i%4]);
         fflush(stdout中);
         usleep(100000);
     }
     的printf( “\ n”);
     返回0;
 }

Makefile文件

processbar:processbar.o
    gcc $ ^ -o $ @
processbar.o:processbar.c
    gcc -c $ ^ -o $ @

.PHONY:干净 
清洁:
    rm进程栏processbar.o

3.Linux中软件安装方式(源码安装,转安装,荫安装),以CentOS7为例

源码安装简要步骤:

压缩包文件:将软件所有的源代码文件以焦油打包并压缩。

(1)最好将压缩包文件解压缩到的/ usr /本地/ SRC目录下

(2)./ configue

            这个步骤用来检测当前操作环境,相关的软件属性等,并建立Makefile文件。

            --help显示./configue可用的参数

            --prefix = / path / path表示指定这个软件的安装路径,默认的安装路径是/ usr / local

(3)使

            依据该目录下的Makefile的配置文件将源码编译成可执行文件,而这个可执行文件会放置在目前所在的目录下尚未被安装到预定安装的目录中。

(4)安装

            以使这个程序,并以Makefile的这个参数配置文件,依据安装这个目标的指定来安装到正确的路径。

通常每个软件都会附带INSTALL和自述这种文件名的帮助文件,这些帮助文件通常会记录这个软件的安装要求,软件的安装方法等,这些帮助文件详细阅读后,源码安装基本上没有问题。

RPM安装

rpm全称“RedHat Package Manager”,这是由Red Hat公司发展出来的软件管理机制.rpm就是将要安装的软件的源码在厂商发布的系统上先编译过,并且打包成rpm机制的安装包,通过包装好的软件里默认的数据库记录这个软件要安装的时候必须具备的依赖属性软件,当安装在Linux的主机时,转数会先依照软件里头的数据查询的Linux主机的依赖属性软件是否满足,若满足则予以安装,否则不安装。

所谓软件依赖属性就是比如你想安装甲软件,但你本机上必须先装好乙软件的情况下才能安装甲软件。(虽然可以强制安装,但通常会有点问题发生)

安装方法:

rpm -i xxxxxxx.rpm

-i intall的意思

-v查看详细的安装信息

-h以安装信息栏显示安装进度

具体的信息可查看的人。

百胜在线安装

例如安装GCC

yum -y安装gcc

-y默认输入yes

荫安装和转安装的区别:

转只能安装在本地机器上的rpm包,并且不能解决包之间的属性依赖问题。

荫能够在线下载并安装rpm包,若所依赖的属性软件未安装,荫能一并下载依赖的转包并安装,可以解决软件的属性依赖问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值