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