【问题标题】:Easiest way to merge 2 or more ELF files合并 2 个或更多 ELF 文件的最简单方法
【发布时间】:2011-06-02 02:38:59
【问题描述】:

我正在为当前(根据要求)创建许多 srec 文件并合并它们的类项目编写一些嵌入式代码。我希望能够将此代码加载到 QEMU 中,但它通常只对 ELF 文件感到满意。合并原始 ELF 文件而不是 srecs 的最简单方法是什么? 同样可以接受的是,一种将 srec 转换回 ELF 并让生成的文件可加载的方法(objcopy 似乎会产生相当损坏的文件(没有其他架构)。 这些工具必须能够处理 m68k 二进制文件,但主机系统是纯 x86。

【问题讨论】:

    标签: linker embedded elf 68000 coldfire


    【解决方案1】:

    请看ELFIO library。它包含 WriteObj 和 Writer 示例。通过使用该库,您将能够在不同的主机平台上创建 ELF 二进制文件。

    【讨论】:

      【解决方案2】:

      简单... 让我们假设:a.c 和 b.c

      gcc a.c -c -o a.o
      gcc b.c -c -o b.o
      ld -r a.o b.oc -o c.o
      

      c.o 现在包含 a.o 和 b.o 作为可重定位的 ELF 文件。

      --伊万

      【讨论】:

        【解决方案3】:

        也许使用你的链接器?

        srec 文件仅包含链接/定位的可加载二进制文件,elf 文件包含在生成二进制文件时丢失的附加元数据,因此可能无法返回到 elf,特别是如果需要 elf可重定位。

        【讨论】:

          【解决方案4】:

          我发现我最初的问题最简单的解决方案实际上是将 SREC 加载添加到 qemu。我已经在修改源代码以添加板支持,因此 SREC 支持并没有太多额外的工作。我在 github 上从一个已经这样做的人那里找到了一些代码,并将其用作我工作的基础。

          https://github.com/MegabytePhreak/qemu-mcf5307/commit/d3bceb911893b37b2524d6e804bac96691d4d33c

          【讨论】:

          • 似乎是对“问题”的回答,但不是对问题的回答……至少不像标题中所问的那样。
          猜你喜欢
          • 1970-01-01
          • 2021-12-13
          • 1970-01-01
          • 2010-09-10
          • 2011-05-27
          • 1970-01-01
          • 2022-01-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多