2009-10-29 110 views
1

我正在尋找一種方法來爲Windows/Mac製作雙重可執行文件。也就是說,我可以在任一操作系統中執行該文件,並且它會運行我想要的該操作系統的一段代碼。此代碼可以是腳本或(最好)本地編譯代碼,但需要在vanilla操作系統上運行,無需安裝任何額外的工具或庫。另一個要求是它需要成爲一個文件。有什麼辦法可以爲Mac/Windows製作雙重可執行文件?

任何人都知道如何做到這一點,或者這甚至有可能嗎?

回答

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應用程序相同的代碼。

+0

Windows有兩個shell,舊的cmd shell(可能有另一個名字),這對任何人都不是很有用,Powershell確實非常好( - :它也可以在Windows下運行vbscript或jscript,與命令分開雖然在解決這個問題上仍然沒有太多的用處! – Murph 2009-10-30 09:24:15

+0

我忘記了Powershell,很好的調用!我會相應的編輯。 – 2009-10-30 11:51:15

1

在一個腳本中它都可以,但是在編譯代碼中這是不可能的,因爲WIndows可執行文件(exe)與Mac可執行文件(bin)不同,它們與Linux可執行文件(不管你想要的)不同。

1

只要您使用Java等跨平臺語言,您就可以在任一操作系統上運行它。本機代碼將不可執行。

+0

+1:可執行JAR執行此操作。 – 2009-10-29 21:21:01

+0

默認情況下java並沒有安裝在所有平臺 – 2009-10-30 09:22:28

+0

上,但爲什麼會出現這個問題?它是一個相當簡單的安裝工具,而且很普遍,這是一個合理的要求。 - 也就是說,我重新閱讀了這個問題,它確實說OP在尋找原生的操作系統,而java不適合這個配置文件。 – 2009-10-30 22:11:06

1

兩者之間沒有任何相似之處。任何語言的程序或腳本都不會在沒有其他要求的情況下在兩臺機器上運行完全相同,例如Windows的bash解釋器。

1

單聲道或Java可以安裝在Mac上並運行旨在跨平臺的程序。如果沒有這種特殊的庫來支持多種平臺,那麼沒有共同的分母,也無法在兩者上運行相同的應用程序。

0

你可能想看看Realbasic。它是一個帶有IDE的VB克隆語言。它將爲Windows,Mac和Linux構建可執行文件。realbasic.com

0

您可能會考慮查看與Tcl/Tk一起使用的StarKits。

1

不正是你想要的,但也許值得一提:

您可以使用Cocotron編譯寫在使用可可爲Windows的OBJ-C程序。工作得很好!這不會給你一個用於Mac和Windows的可執行文件,但是一個用於Mac和一個用於Windows。

相關問題