在haskell构建系统中,Cabal和runhaskell拥有几乎相同的一组子命令,即configure、build。对于runhaskell来说,它是:
runhaskell Setup.hs configure
runhaskell Setup.hs build阴谋集团的...whereas是:
cabal build
cabal configure那么,我什么时候应该使用哪个命令呢?这两个命令具有相同的功能吗?
我可以在没有sudo访问的情况下运行runhaskell,因为我看到runhaskell在/opt/ghc/7.8.4/lib中生成条目,而阴谋在sudo/non模式下工作?
发布于 2015-04-18 13:40:53
cabal和runhaskell的用途完全不同。runhaskell用于执行Haskell程序,而不需要编译它们。您可以将它放在Haskell文件的顶部:#!/usr/bin/env runhaskell,并赋予它脚本能力。cabal是Haskell的包管理器和构建系统。
另外,cabal和runhaskell不共享它们的子命令,如configure、build、install等。
我在这个链接中看到了bob.ippoli.to/archives/2013/01/11/getting-started-with-haskell,使用的两个命令..。运行Setup.hs配置& runhaskell Setup.hs构建
通常,Setup.hs在从cabal init生成时有以下代码
import Distribution.Simple
main = defaultMain现在,如果您看到defaultMain的实现
defaultMain :: IO ()
defaultMain = getArgs >>= defaultMainHelper simpleUserHooks因此,您要传递的实际上是命令行参数,它可以是任何内容。事实上,你可以自己测试:
$ runhaskell Setup.hs invalid_argument
unrecognised command: invalid_argument (try --help)发布于 2015-04-18 13:41:19
runhaskell没有任何子命令:
$ runhaskell -救命 用法: runghc runghc标志模块程序args
它获取到Haskell源文件的路径并立即执行它。所以,当您只想运行一些Haskell代码时,就应该使用它。当然,您可以在没有超级用户访问的情况下使用runhaskell;我怀疑它会在/opt中创建任何东西。
阴谋集团是Haskell项目的构建系统,其目的是将Haskell源转换为二进制文件。
https://stackoverflow.com/questions/29718123
复制相似问题