gpt4 book ai didi

c - 我对符号表和重定位表的使用的理解是否正确?

转载 作者:太空狗 更新时间:2023-10-29 15:32:38 25 4
gpt4 key购买 nike

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

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

  1. 在可重定位目标文件中,符号表必须包含从其他目标文件访问/调用的变量和函数的条目。未在目标文件外使用的变量和函数的列表是可选的。
    • 这意味着如果程序只包含一个目标文件,符号表可以省略。
  2. 在可重定位的目标文件中,重定位表保存了在加载期间必须更新的汇编代码的所有位置的地址。
  3. 在不可重定位的目标文件中,可以省略重定位表。但是,必须将对象加载到硬编码到指令中的地址空间。

感谢您的宝贵时间!

最佳答案

  1. 第一部分(大约只有 extern 元素是必需的)是正确的。然而,关于由单个目标文件组成的程序的推论并不完全正确:至少一个符号必须可供外部使用 - 即入口点(C 程序的 main 函数)必须可见。
  2. 由于 address 在不同的上下文中有不同的含义,因此最好在文件中讨论偏移量,而不是地址。重定位表包含文件加载到内存时需要更新的所有内容的偏移量,以及需要写入这些偏移量的信息。
  3. 不可重定位文件需要加载到特定地址。不需要重定位表。

关于c - 我对符号表和重定位表的使用的理解是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com