有没有办法为Mac / Windows制作双重可执行文件?

时间:2009-10-29 21:06:04

标签: windows macos executable

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

任何人都知道这样做的方法还是可能?

8 个答案:

答案 0 :(得分:9)

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

  • 脚本: 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应用程序完全相同的代码。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

您可以考虑查看使用Tcl / Tk的StarKits。