失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 什么是符号表 符号解析 符号重定位?

什么是符号表 符号解析 符号重定位?

时间:2022-08-11 00:33:45

相关推荐

什么是符号表 符号解析 符号重定位?

1、什么是符号表?
2、何为符号解析和符号重定位?

在链接中,将函数和变量统称为符号。函数名或变量名称为符号名

链接过程中很关键的一部分就是符号的管理,每一个目标文件都会有一个相应的符号表,这个表里记录了目标文件中所用到的所有符号。

每一个定义的符号有一个对应的值,叫做符号值。对于函数和变量来说,符号值就是它们的地址。

符号表中所有的分类

1.定义在本目标文件的全局符号,可以被其他目标文件引用。

2.在本目标文件中引用的全局符号,却没有定义在本目标文件,这一般叫做外部符号。这里就是引用外部符号。

3.段名,这种符号由编译器产生,它的值就是其段的起始地址。如目标文件里的.text、.data 段。

4.局部符号,只在编译单元内部可见。局部符号对于链接过程是没有作用的。

5.行号信息,即目标文件指令与源代码中代码行的对应关系。

对于链接过程来说,只关注全局符号的相互“粘合”,其它的符号都是次要

符号值(st_value)的几种情况

1.在目标文件中,如果是符号的定义并且该符号不是在COMMON块类型的,则st_value表示该符号在段中的偏移。

2.在目标文件中,如果符号时COMMON块类型的,则st_value表示该符号的对齐属性。

3.在可执行文

如果觉得《什么是符号表 符号解析 符号重定位?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。