【问题标题】:Is there any way to make a dual executable file for Mac/Windows?有没有办法为 Mac/Windows 制作双重可执行文件?
【发布时间】:2014-12-05 04:06:36
【问题描述】:

我正在寻找一种为 Windows/Mac 制作双重可执行文件的方法。也就是说,我可以在任一操作系统中执行该文件,它会运行一些我想要用于该操作系统的代码。此代码可以是脚本或(最好是)本地编译的代码,但它需要在 vanilla OS 上运行,而不需要安装任何额外的工具或库。另一个要求是它必须是单个文件。

任何人都知道这样做的方法,或者这甚至可能吗?

【问题讨论】:

    标签: windows macos executable


    【解决方案1】:

    我可以看到这个工作的唯一方法是安装额外的工具:

    • 脚本: 命令解析器在 Mac(bash shell)和 Windows(有 2 个:PowerShell 和原来的,不知道它的技术名称)之间非常不同。您要么必须在 Windows 机器上安装 Unix/Cygwin/Insert-other-UNIXy-Environment 服务,要么使用 perl 或其他脚本语言。在任何一种情况下,至少Windows 机器,可能还有Mac,都需要额外的开箱即用工具。
    • 可执行文件: 实现这一目标的唯一方法是使用 Java、.NET/Mono 或其他一些基于字节码的跨平台虚拟机环境。因此,您仍然依赖于非内置工具。 (IIRC,Java 不随 Windows 提供,Mono 不随 Mac 提供。)
    • 其他问题:在处理工具依赖性后您会遇到的最大问题是两个系统上的路径标识不同。了解 Mac 路径通常是 Unix 风格的路径(尽管我相信“老式”Mac 冒号分隔的路径仍然有效)。您还必须根据两种环境处理不同的文件位置和默认位置。这会很痛苦。

    现在,如果您可以避免使用交叉编译而不是二进制兼容性,那么您可能会在一个名为 RealBasic 的工具中找到答案。它最初是基于 Mac 的,但也有适用于 Windows 和 Linux 的版本。在这十年的早期,我曾经玩过它,它非常整洁,但不是我专业使用过的东西。这将如果你小心,允许你编写一次代码,并编译与本地 Mac、Linux 和 Windows 应用程序完全相同的代码。

    【讨论】:

    • Windows 有两个 shell,旧的 cmd shell(可能有另一个名字)对任何人都没有多大用处,而 Powershell 确实非常好(-:它也可以运行 vbscript 或windows下的jscript与命令shell分开。但是在解决问题方面仍然没有多大用处!
    【解决方案2】:

    在脚本中一切正常,但在编译代码中这是不可能的,因为 WIndows 可执行文件 (exe) 与 Mac 可执行文件 (bin) 不同,而 Mac 可执行文件 (bin) 与 Linux 可执行文件不同(无论你想要什么)。

    【讨论】:

      【解决方案3】:

      只要您使用 Java 等跨平台语言,您就可以在任一操作系统上运行它。然而,本机代码将不可执行。

      【讨论】:

      • 不是所有平台都默认安装java
      • 是的,但为什么会有这样的问题?它的安装相当简单,并且很常见,这是一个合理的要求。 - 也就是说,我确实重新阅读了这个问题,它确实说 OP 正在寻找原生操作系统的东西,而 java 不适合该配置文件。
      【解决方案4】:

      两者之间没有任何相似之处。如果没有其他要求(例如 Windows 的 bash 解释器),任何语言的程序或脚本都不会在两台机器上运行完全相同。

      【讨论】:

        【解决方案5】:

        Mono 或 Java 可以安装在 Mac 上并运行跨平台设计的程序。如果没有这种支持多平台的特殊库,就没有共同点,也无法在两者上运行同一个应用程序。

        【讨论】:

          【解决方案6】:

          不完全是你想要的,但也许值得注意:

          您可以使用 Cocotron 来编译使用 Cocoa for Windows 编写的 Obj-C 程序。效果很好!这不会为您提供一个适用于 Mac 和 Windows 的可执行文件,而是一个适用于 Mac 和一个适用于 Windows。

          【讨论】:

            【解决方案7】:

            您可能想查看 Realbasic。它是带有 IDE 的 VB 克隆语言。它将为 Windows、Mac 和 Linux 构建可执行文件。 realbasic.com

            【讨论】:

              【解决方案8】:

              您可以考虑查看与 Tcl/Tk 一起使用的 StarKit。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2020-08-20
                • 2021-08-25
                • 1970-01-01
                • 1970-01-01
                • 2022-10-07
                • 2022-10-06
                • 2021-07-10
                相关资源
                最近更新 更多