Haskell 不使用 'stack exec' 的独立可执行文件
Haskell standalone executable without using 'stack exec'
如何从 stack
生成的框架 (stack new myprog simple
) 创建可执行文件?
myprog.cabal
将 myprog
显示为可以使用 stack exec myprog
.
执行的可执行文件
但是:使用 ./myprog
将不起作用。除非我打电话给 ghc --make src/Main.hs
。这显然可以很好地嵌入模块,但现在可执行文件被称为 Main
.
有没有办法让 stack
编译 myprog
作为一个完整的可执行文件,假设环境路径已设置,可以从任何地方调用?
您可能已经知道,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
.
运行 可执行文件
如何从 stack
生成的框架 (stack new myprog simple
) 创建可执行文件?
myprog.cabal
将 myprog
显示为可以使用 stack exec myprog
.
但是:使用 ./myprog
将不起作用。除非我打电话给 ghc --make src/Main.hs
。这显然可以很好地嵌入模块,但现在可执行文件被称为 Main
.
有没有办法让 stack
编译 myprog
作为一个完整的可执行文件,假设环境路径已设置,可以从任何地方调用?
您可能已经知道,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
.