ELF文件中的符号

1、符号

时刻谨记链接包括静态链接和动态链接。

静态链接在编译期,动态链接在运行期。

链接的前提是不同的目标文件中有互相的依赖关系,其中依赖关系指的就是符号的定义和引用不在同一个文件。

函数和变量都称为符号。整个链接的过程就是基于符号。

每个目标文件都会有一个相应的符号表(symbol table),每个符号都有一个对应的值,符号值(symbol value)对应地址。

符号:

1、定义在本目标文件的全局符号,默认可见性可以被其他目标文件引用。

2、在本目标文件中引用的全局符号,其定义不在本目标文件中,也叫外部符号(extern)。

3、段名,如果不指定就默认由编译器生成,值为该段的起始地址。

4、局部符号,只能在编译单元内部可见,链接过程无法获取到,也不需要。

5、行号信息,代码行位置与符号对应关系,符号所在的位置,可选。

链接过程只关系前两者。

可以使用很多工具看来查看elf文件中的符号表:readelf -s、objdump -t、nm等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值