【问题标题】:run wxHaskell on other machine在其他机器上运行 wxHaskell
【发布时间】:2010-05-04 20:38:19
【问题描述】:

我已经编译了使用 wxHaskell 库的 haskell 程序,现在我想知道如何让它在其他没有安装 wxHaskell 的机器上运行。当然我可以看到错误,我可以复制输出中写入的 dll 并将它们复制到那台机器,但是什么是专业解决方案,我可以编写任何安装程序或类似的东西吗?

感谢帮助

【问题讨论】:

    标签: dll haskell installation wxhaskell


    【解决方案1】:

    您需要完全静态链接您的可执行文件。如何做到这一点因系统而异,但通常涉及将 -static 标志传递给 GHC,并将 -optl-static 传递给链接器。

    【讨论】:

      【解决方案2】:

      如果您使用最近的 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 上的许多 3rd 方库都需要 msvcrt.dll,这就是我提到它的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多