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