我只是好奇在OSX上是否有可能加载和执行ELF文件。我知道标准的可执行格式是MACHO,但NASM不能为MACHO对象生成调试信息(而我需要使用NASM)。我想这可能很困难,但我不知道能否使用ELF文件。我可以使用NASM构建它们,但似乎甚至无法通过LD进行链接。
我只是好奇在OSX上是否有可能加载和执行ELF文件。我知道标准的可执行格式是MACHO,但NASM不能为MACHO对象生成调试信息(而我需要使用NASM)。我想这可能很困难,但我不知道能否使用ELF文件。我可以使用NASM构建它们,但似乎甚至无法通过LD进行链接。
最佳的OS X内部书籍作者有一些代码展示如何编写内核扩展来处理另一种可执行文件格式,这里有具体实现。他给出了两个例子:运行Google Native Client(NaCl)ELF应用程序和使用Apout运行PDP-11应用程序。
我不确定这个软件的成熟度。它目前支持Leopard及更高版本。
现在有一个名为“对象转换器”的程序,它声称可以将ELF文件转换为MACHO文件,以及其他几种可执行文件和对象/装载器文件的转换。请访问http://agner.org/optimize/#objconv 以获取更多信息。我没有试过,但有详细的文档可用。