2010-05-04 58 views
2

我編譯了使用wxHaskell庫的haskell程序,現在我想知道如何讓它在沒有安裝wxHaskell的其他機器上運行。當然,我可以看到錯誤,我可以複製寫在輸出中的dll,並將它們複製到該機器上,但是什麼是professioal sollution,我可以編寫任何安裝程序或類似的東西嗎?在其他機器上運行wxHaskell

感謝您的幫助

回答

2

您將需要完全靜態鏈接您的可執行文件。如何做到這一點因系統而異,但通常包括將-static標誌傳遞給GHC,並將-optl-static傳遞給鏈接器。

0

如果您使用最近的cabalized wxHaskell實現,這很容易,因爲幾乎所有東西都是靜態鏈接的。

我使用InnoSetup,它是開源的,並且工作得很好。我的腳本至少需要以下內容:

AppName=My Wonderful Application 
AppVerName=My Wonderful Application 0.1.13 
CreateAppDir=yes 
DefaultDirName={pf}\MyWonderfulApplication 

[Files] 
Source: "path\to\your\wxWidgets.dll" 
Source: "path\to\msvcrt.dll" 
Source: "path\to\your\application.exe" 

除DefaultDirName之外的所有路徑都是開發計算機上的路徑。

關鍵項目是您的wxWidgets DLL(可能是多個DLL,具體取決於您如何構建wxWidgets-我推薦並使用單片選項,它會創建單個DLL wxmsw28u_gcc_custom.dll)和您的應用程序二進制文件。

如果您鏈接到任何其他庫,您也將需要它們。 Windows上的許多第三方庫需要msvcrt.dll,這就是我提到它的原因。

相關問題