编译堆栈脚本而不是 运行 它
Compile stack script instead of running it
构建工具 stack
具有将通常编译的 haskell 源文件视为脚本的功能。 (https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter)
是否也可以用同样的方法创建编译后的可执行文件?
我搜索了 stack
和 stack script
的 help
部分,但找不到使这成为可能的选项。
script.hs:
#!/usr/bin/env stack
{-
stack script
--resolver lts-13.14
--package turtle
-}
main = print "hello"
因此,如果赋予它正确的权限,则可以执行该文件。我想在幕后堆栈会编译文件然后运行它。我只想得到编译后的中间二进制文件。
不,它没有编译。它是 运行 到 runhaskell
,这是一个 Haskell 解释器。如果你想编译它......那么做。而不是 运行ning 脚本,
从脚本注释中获取 --resolver
和 --package
选项并像这样传递它们
stack ghc --resolver lts-13.14 --package turtle test.hs
script
命令将 --compile
和 --optimize
作为标志,这将指示 Stack 首先编译为可执行文件(可选 -O2
优化级别) 运行.
构建工具 stack
具有将通常编译的 haskell 源文件视为脚本的功能。 (https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter)
是否也可以用同样的方法创建编译后的可执行文件?
我搜索了 stack
和 stack script
的 help
部分,但找不到使这成为可能的选项。
script.hs:
#!/usr/bin/env stack
{-
stack script
--resolver lts-13.14
--package turtle
-}
main = print "hello"
因此,如果赋予它正确的权限,则可以执行该文件。我想在幕后堆栈会编译文件然后运行它。我只想得到编译后的中间二进制文件。
不,它没有编译。它是 运行 到 runhaskell
,这是一个 Haskell 解释器。如果你想编译它......那么做。而不是 运行ning 脚本,
从脚本注释中获取 --resolver
和 --package
选项并像这样传递它们
stack ghc --resolver lts-13.14 --package turtle test.hs
script
命令将 --compile
和 --optimize
作为标志,这将指示 Stack 首先编译为可执行文件(可选 -O2
优化级别) 运行.