我有一个使用GHC-API来处理Haskell源文件的程序。源文件从特定的cabal-packages导入模块,这意味着必须将cabal软件包安装到运行程序的系统中。
分发程序的最简单方法是什么?我不想在每个目标系统上安装ghc。例如,我可以使用我的程序制作某种便携式的cabal沙箱吗?怎么样?有更好的解决方案吗?
答案 0 :(得分:1)
如果您的程序使用GHC-API,则无论如何都需要GHC。您应该将应用程序提供为可执行文件,如下所示:
$ ghc -O2 --make -static -optc-static -optl-static A.hs -fvia-C -optl-pthread
或使用名为“Relocatable packages”的新的Cabal功能,使用密钥--enable-relocatable
来提供所有其他文件,但我认为这将是一个巨大的分发。