04可重定位目标文件ELF文件解析

本文介绍了可重定位目标文件的特点与格式,包括ELF头、.text、.rodata、.data、.bss等关键节的作用及重定位信息的重要性。

目录

一:可重定位目标文件的特点

二:可重定位目标文件的格式


一:可重定位目标文件的特点


•可被链接(合并)生成可执行文件或共享目标文件

•静态链接库文件由若干个可重定位目标文件组成

•包含代码、数据(已初始化全局变量和局部静态变量.data和未初始化的全局变量和局部静态变量.bss)

•包含重定位信息(指出哪些符号引用处需要重定位)

•文件扩展名为.o(相当于Windows中的.obj文件)

我们都知道可重定位目标文件都是用来进行链接生成可执行目标文件的,那么下面我们来看下相应的链接试图,看看可重定位目标文件中都包含什么信息,下图是一个简单的举例,一起来看下吧。

 

通过上面的图片我们可以看出ELF文件主要包含了text,data,bss节,之前的文章对这些节的内容也做了简单的介绍,具体可以翻看之前的内容。要想进行连接,除了这几个节之前还需要其他的信息,比如符号表,重定位信息等等,这些后面会一一介绍。这里我们先介绍下为什么会有BSS节。

•C语言规定:

– 未初始化的全局变量和局部静态变量的默认初始值为0

• 将未初始化变量(.bss节)与已初始化变量(.data节)分开的好处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值