Haskell独立可执行文件,无需使用“ stack exec”

时间:2019-06-13 13:00:22

标签: haskell ghc haskell-stack

如何从stack生成的框架(stack new myprog simple)创建可执行文件? myprog.cabal随后将myprog显示为可以使用stack exec myprog执行的可执行文件。但是:无法使用./myprog。除非我打电话给ghc --make src/Main.hs,否则不会。显然,这可以正常工作并且很好地嵌入了模块,但是现在可执行文件称为Main。 有没有办法让stack编译为myprog作为一个完整的可执行文件,可以在设置了环境路径的情况下从任何地方调用?

1 个答案:

答案 0 :(得分:9)

您可能已经知道,stack build会生成可执行文件,然后将其放在特定于stack的路径中,使用stack exec可以很容易地对其进行访问。但是,还有另一个命令:stack install,然后将可执行文件复制到方便的位置。通常,默认位置在~/.local/bin中(我认为),但是您可以使用stack install --local-bin-path <PATH>将可执行文件复制到<PATH>中。例如,使用stack install --local-bin-path .将可执行文件放置在当前工作目录中,或使用stack install --local-bin-path bin将可执行文件放置在./bin/目录中。然后,您可以使用<PATH>/my-exe运行可执行文件。