如何向非技术终端用户分发Haskell程序?

如何向非技术终端用户分发Haskell程序?,haskell,Haskell,我刚刚开始学习Haskell,所以如果这个问题有明显的答案,请原谅我。我感兴趣的是编写程序,分发给可能知道如何使用终端应用程序但不一定知道如何在系统上编程或安装Haskell和Haskell库的最终用户 如何包装Haskell程序(例如命令行工具或更复杂的应用程序)并将其分发给此类用户群 ghc -o hello hello.hs 将.hs编译为冻结二进制文件,因此对于windows,用户只需双击hello.exe,而对于linux,则为./hello 如果他们是windows用户,则使用该软

我刚刚开始学习Haskell,所以如果这个问题有明显的答案,请原谅我。我感兴趣的是编写程序,分发给可能知道如何使用终端应用程序但不一定知道如何在系统上编程或安装Haskell和Haskell库的最终用户

如何包装Haskell程序(例如命令行工具或更复杂的应用程序)并将其分发给此类用户群

ghc -o hello hello.hs

将.hs编译为冻结二进制文件,因此对于windows,用户只需双击hello.exe,而对于linux,则为./hello

如果他们是windows用户,则使用该软件包为您的应用程序构建安装程序。如果没有,那么寻找发行版特定的包装建议。也许其他人可以解释OS X的打包。

当然还有
--make
,当您有多个文件时。此外,编译版本是针对特定的体系结构,还是通常可以在OS X和Linux上运行?@dan:本机可执行文件不能在不同的平台上运行(至少在除一个平台外的所有平台上不需要额外的仿真工作)。我认为,如果您使用共享/动态链接库,则需要在目标计算机上独立安装它们。对于Windows,这可能与将所需的DLL放在新创建的exe目录中一样简单。对于Linux,您可能希望使用其包存储库,如apt或yum。对于OS X,没有任何线索。@fuzzxl-所有GHC库和许多Hackage库都有BSD许可证,但绝不是所有的。如果您正在分发二进制文件,则需要遵守所有链接库的许可证。