2

我正在使用 devKitPro 专门为 Nintendo Wii 创建一个应用程序。我想通过提供加载通过 objcopy -O 二进制文件传递的代码的能力来使我的应用程序模块化。我的问题是,我希望模块能够使用加载到内存中的主 ELF 中的符号。我尝试了各种方法,但没有提出任何解决方案。

  • 我尝试使用 -Map,因为我认为这可以让我使用链接器映射,但这个想法失败了。

  • 我还尝试编译到共享库中,但这对我不起作用,因为链接器抱怨“具有动态重定位的只读段”。

我真的需要帮助,因为我既不在 Windows 也不在 Linux 环境中。

4

1 回答 1

0

您可以考虑使用libdl在运行时按名称精确加载符号来执行此操作。使用libdl你可以获得你想要作为初始化子例程的一部分调用的所有函数的句柄,然后在你的程序需要它们时让它们可供你使用。最重要的是,您不需要在编译时拥有要链接的库,因此您可以用任何定义了这些符号的精灵替换它,而无需重新编译。

于 2014-05-03T07:43:53.807 回答