【问题标题】:Linking: making virtual address corresponding to file offset链接:使虚拟地址对应文件偏移量
【发布时间】:2013-03-09 14:03:13
【问题描述】:

我在让我的系统正常工作时遇到了一些小问题,所以我决定问一个问题,是否可以使虚拟地址对应于文件偏移量。所以如果我的.text 部分的虚拟地址是0x1000,我希望链接器用零填充“填充”空间。有可能吗?

【问题讨论】:

  • 为什么要依赖这种行为?一开始这不是一个好主意,其次它可能甚至不可能
  • 我需要一些对齐和空间。
  • 我怀疑任何现有的链接器都会这样做。但是您可以自己修复标题和部分的大小。
  • ...您只需要移动sections并更新sections表中的文件偏移量。
  • 如果你想要这样的东西,为什么不直接要求一个正确大小的静态数组呢?我什至认为我不太明白你想要什么。

标签: c windows assembly linker exe


【解决方案1】:

您提到您的系统,所以我认为它与爱好操作系统开发有关,并且您知道您要做什么以及为什么。 p>

如果图像是PE文件,可以使文件对齐等于节对齐。在 GNU ld 中,您可以通过将 --file-alignment 4096 (因为默认的节对齐方式是 4096 并且根据 PE 规范不能小于)传递给链接器来做到这一点。

如果您不关心生成有效的 PE,--section-alignment 512(Microsoft 链接器为/ALIGN:512)也可以工作。

【讨论】:

    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 2011-12-11
    • 2020-06-19
    • 2019-08-07
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多