【问题标题】:How do i use runhaskell with cabal-dev?我如何将 runhaskell 与 cabal-dev 一起使用?
【发布时间】:2012-02-20 22:34:00
【问题描述】:

不幸的是 cabal-dev ghci 在这个项目中不起作用,我收到一个错误:

Loading package download-0.3.2 ... linking ... 
ghc: /home/stulli/haskell/ifdl/cabal-dev//lib/download-0.3.2/ghc-7.4.1/HSdownload-0.3.2.o: unknown symbol `stat64'
ghc: unable to load package `download-0.3.2'

所以我尝试了 runhaskell,但它使用的是随 cabal 而不是 cabal-dev 一起安装的软件包,因此失败了。

更新: runhaskell 产生同样的错误:

$ runhaskell -isrc:src/test -package-conf=cabal-dev/packages-7.4.1.conf src/test/Test.hs
Test.hs: /home/stulli/haskell/ifdl/cabal-dev//lib/download-0.3.2/ghc-7.4.1/HSdownload-0.3.2.o: unknown symbol `stat64'
Test.hs: Test.hs: unable to load package `download-0.3.2'

另一方面,cabal-dev install 可以正常工作。

【问题讨论】:

  • 如果你使用cabal sandbox(当你问这个问题时它并不存在),你可以直接使用cabal exec runhaskell main.hs

标签: haskell cabal runhaskell


【解决方案1】:

你可以试试类似下一个:

runhaskell -package-conf=cabal-dev/packages-7.0.3.conf main.hs

但我认为如果cabal-dev ghci 不起作用,那么runhaskell 也将不起作用。您需要找出download 包的问题所在。

【讨论】:

  • 是的,你是对的。 runhaskell 也犯了同样的错误。 cabal-dev 安装虽然有效...
  • 因为这在另一个目录上工作(没有损坏的包)我会接受这个答案。
  • 在 GHC 7.6 中 -package-conf 已弃用 -package-db 应改为使用,请参阅 haskell.org/ghc/docs/7.6.1/html/users_guide/…
【解决方案2】:

要将 runhaskell 与 cabal 沙箱(cabal >= 1.18)一起使用,请运行命令

runhaskell -package-db=.cabal-sandbox/i386-windows-ghc-7.6.3-packages.conf.d <file.hs>

为您的 GHC 版本替换正确的 *-packages.conf.d 目录。

【讨论】:

    【解决方案3】:

    cabal-dev 设置不适用于ghci,因此很可能它也不适用于runhaskell。也许virthualenv 更适合这个用例?

    【讨论】:

    • 现在我收到一个错误,因为安装 virthualenv 时出现基本依赖错误。当我有心情再摆弄一点时,我会尝试一下,所以感谢您的提示。也许我会为将来可以使用的下载包寻找替代品。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多