2010-05-04 60 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,这就是我提到它的原因。

相关问题