在 OSX 上加载/执行 ELF 文件的可能性

Posted

技术标签:

【中文标题】在 OSX 上加载/执行 ELF 文件的可能性【英文标题】:Possibility of loading/executing ELF files on OSX 【发布时间】:2011-02-04 05:14:19 【问题描述】:

我只是对在 OSX 上加载和执行 elf 文件的可能性感到好奇。我知道标准的可执行格式是 MACHO,但是 NASM 无法为 MACHO 对象生成调试信息(并且我需要使用 NASM)。我想这是一个很长的镜头,但我不认为我可以使用 ELF 文件。我可以用 NASM 构建它们,但我什至无法将它们与 LD 链接起来。

【问题讨论】:

【参考方案1】:

最好的 OS X 内部书籍的作者有一些代码展示了如何编写内核扩展来处理另一种可执行文件格式here。他举了两个例子:运行 Google Native Client (NaCl) ELF 应用程序和使用 Apout 运行的 PDP-11 应用程序。

我不确定这个软件有多成熟。它目前支持 Leopard 和更好的版本。

【讨论】:

【参考方案2】:

现在有一个“对象转换器”程序,它表示它可以将 ELF 文件转换为 MACHO 文件,以及对可执行文件和对象/加载器文件的其他几种转换。请参阅http://agner.org/optimize/#objconv 了解更多信息。没有尝试过,但有大量可用的文档。

【讨论】:

从它的文档中,他可以转换 .o 库,而不是 .so 文件

以上是关于在 OSX 上加载/执行 ELF 文件的可能性的主要内容,如果未能解决你的问题,请参考以下文章

可执行文件格式elf和bin

如何在 OS X 10.9 (Mavericks) 上使用 GDB 而不是 LLDB 调试 ELF 文件?

autotools:C 编译器无法创建可执行文件

(arm-none-eabi-gcc) 从引导加载程序 + 2 x 固件映像创建 .elf 二进制文件

ELF 文件和 bin 文件有啥区别?

ELF文件的格式和加载过程