【发布时间】:2019-04-06 13:42:36
【问题描述】:
假设我有一个为 Linux (foo.elf) 和 OSX (foo.macho) 构建的程序。我想以一种让用户不必担心的方式分发它。
有没有办法创建一个文件foo,它在Linux 上的工作方式与foo.elf 和在OSX 上的foo.macho 类似,也许可以使用一些巧妙的技巧使文件与这两种格式兼容?
【问题讨论】:
-
这两种文件格式从根本上是不兼容的,所以如果你真的只想分发一个文件,我看到的唯一方法是将两个二进制文件嵌入到自定义存根加载器中,该加载器用可以运行的东西编写单独在两个系统上,例如bash 或 Java。此外,您可能仍然需要在运行时将嵌入的二进制文件删除并写入临时文件,以便实际执行它们。
标签: cross-platform elf mach-o