首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我对符号表和重新定位表的使用的理解正确吗?

我对符号表和重新定位表的使用的理解正确吗?
EN

Stack Overflow用户
提问于 2014-10-04 23:55:26
回答 1查看 1.1K关注 0票数 4

我目前很难理解链接/加载的概念。

你能告诉我以下关于符号和重新定位表的使用说明是否正确吗?

  1. 在可重定位的对象文件中,符号表必须包含从其他对象文件访问/调用的变量和函数的条目。列出不在对象文件之外使用的变量和函数是可选的。
    • 这意味着,如果程序只包含一个对象文件,则可以省略符号表。

  1. 在可重定位的对象文件中,重新定位表保存在加载过程中必须更新的组装代码的所有位置的附件。
  2. 在不可重定位的对象文件中,可以省略重定位表。但是,必须将对象加载到硬编码到指令的入口空间中。

耽误您时间,实在对不起!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 00:06:29

  1. 第一部分(关于只需要extern元素)是正确的。然而,由单个对象文件组成的程序的推论并不完全正确:至少必须有一个符号可供外部使用--即入口点(C程序的main函数)必须是可见的。
  2. 由于address在不同的上下文中有不同的含义,所以最好在文件中讨论偏移,而不是地址。在将文件加载到内存中时,重新定位表包含所有需要更新的内容,以及需要写入这些偏移量的信息。
  3. 不可重定位的文件需要加载在特定的地址。不需要重新安置表。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26198315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档