PowerPC-object与elf中的符号引用
Posted wjcdx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerPC-object与elf中的符号引用相关的知识,希望对你有一定的参考价值。
一. 符号引用
编译会先把每个源代码文件编译成object目标文件,然后把所有目标文件链接到一起,成为最终的可执行格式,如elf或exe.
源代码文件中会有很多符号引用,比如一个函数调用另一个函数,一个变量中引用另一个变量。这些引用在目标文件中并不会确定地址,只有在最终链接的时候才会确定。
二. 函数引用实例
main函数中调用foo函数,即main函数引用符号foo。main.o或者main.obj中的引用如下:
elf中的引用为:
这里已经是最终地址了。
三. 数据引用实例
ref.c(c99语法)代码如下:
b_struct引用a_struct。
在ref.o或ref.obj中的引用为:
可以看到bs中as的指针处为0,而不是实际的值,因为此时还不知道as最终会放在哪一个地址。
elf中为:
这里为最终地址。
以上是关于PowerPC-object与elf中的符号引用的主要内容,如果未能解决你的问题,请参考以下文章
程序运行之ELF 符号表
C温故补缺(十七):动态链接(ELF,PIC,GOT,PLT)
有没有办法从 ELF 中提取符号,并使用 LD 将另一个文件与之前 ELF 中定义的符号链接在一起?
我可以从 ELF 文件的符号表中的符号信息中获取对象名称吗?
C++中的*与&
将符号强制到 ELF 文件的顶部