2

我正在尝试myproj.cabal为我的项目编写一个文件,但它似乎没有找到我安装的包~/.cabal

% cabal list HTF
* HTF
    Synopsis: The Haskell Test Framework
    Latest version available: 0.6.0.1
    Latest version installed: 0.6.0.1
    License:  LGPL
% ghc-pkg list HTF
/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.3/package.conf.d
/Users/rampion/.ghc/i386-darwin-6.12.3/package.conf.d
   HTF-0.6.0.1
% cat Setup.hs
import Distribution.Simple
main = defaultMain
% cat Clue.cabal
... 
executable clue-tests
  ghc-options: -Wall -F -pgmF htfpp
  build-depends: QuickCheck, HTF
  main-is: Tests.hs
  hs-source-dirs: tests src
% runhaskell Setup.hs configure
Configuring Clue-0.1.0...
Setup.hs: At least the following dependencies are missing:
HTF -any

我在这里做错了什么?

4

2 回答 2

4

用户暴增给出了很长的答案。

简短的回答是,如果您使用“cabal configure”和“cabal build”和“cabal install”而不是“runghc Setup.hs configure”,一切都会更好。

于 2011-01-15T23:12:10.180 回答
1

嘿,它在常见问题解答中有所介绍

runghc Setup.hs 配置的默认值为 --global,但 cabal 配置的默认值为 --user。全局包不能依赖用户包。因此,如果您使用 cabal 程序安装软件包,那么您也可以使用它来配置其他软件包。通常根本不需要使用 runghc Setup.hs。

如果您需要使用 runghc Setup.hs 接口(例如在某些系统构建脚本中)并且您希望它从用户包 db 中获取包,则使用 --user 标志。如果您经常不得不使用 runghc Setup.hs 界面并且进行每个用户安装很痛苦,那么您可以在 cabal 配置文件 (~/.cabal/config) 中将 cabal 程序的默认设置设置为全局安装.

于 2011-01-15T14:10:30.097 回答