我已经编译了使用wxHaskell库的haskell程序,现在我想知道如何让它在其他没有安装wxHaskell的机器上运行。当然,我可以看到错误,我可以复制输出中编写的dll并将它们复制到那台机器上,但是什么是专业解决方案,我可以写任何安装程序或类似的东西吗?
感谢你的帮助
发布于 2010-05-05 10:00:44
你需要完全静态地链接你的可执行文件。如何做到这一点因系统而异,但通常涉及到将-static标志传递给GHC,并将-optl-static传递给链接器。
发布于 2010-05-24 21:11:21
如果您使用最近的cabalized实现,就会非常容易,因为几乎所有的东西都是静态链接的。
我使用的是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,这就是我提到它的原因。
https://stackoverflow.com/questions/2768813
复制相似问题