ld连接器目标文件elf

linux标准的目标文件格式ELF文件(Executable and Linkable Format)可执行可连接。

ELF文件是UNIX系统目标文件COFF的变种。其文件中包含代码、数据,还包含重定位信息、调试信息、、符号表等其他信息。由一组严格定义的数据结构序列组成。(.o文件为可重定位elf文件)

ELF文件在系统环境下可执行,在裸机情况下不可以。所以连接得到的文件需要经过objcopy工具进行转换,转换为bin、hex等可在裸机下 执行的二进制文件。

先了解一下ELF文件格式

 

以上文的elf文件作为实验对象使用arm-linux-readelf -h start.elf 读取elf文件头

在/usr/include/elf.h中可以找到文件头结构定义:大小总共为52字节

第一部分:魔数标识文件类型。7f 45 4c 46,对应ASCII码.ELF,表示这是一个ELF对象。

Type:表示可执行。

使用工具查看节表信息:readelf -S obj

以.o文件实验

Type:可重定位文件


gcc、ld目标文件都为ELF文件。ld将gcc输出的多个ELF格式的.o文件连接形成一个ELF文件。


需深入了解可观看中国大学mooc国家精品课课程:计算机系统基础(一):程序的表示、转换与链接

参考文章https://www.cnblogs.com/lxq20135309/p/5551658.html

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值