0

我刚刚安装了 EclipseFP,现在我正在尝试在 GHCi 中加载一个模块。问题是 GHCi 不加载由我的模块引用的 cabal 安装的库。在我在 GHCi 中设置 -v 并运行 :r 之后,看起来 GHCi 只查找全局安装的库,而不是为本地用户安装的库:

Could not find module `Text.ParserCombinators.Parsec'
There are files missing in the `parsec-3.1.3' package,
try running 'ghc-pkg check'.
Locations searched:
  Text/ParserCombinators/Parsec.hs
  Text/ParserCombinators/Parsec.lhs
  /Library/Haskell/ghc-7.6.3/lib/parsec-3.1.3/lib/Text/ParserCombinators/Parsec.hi

但是,当我在终端中或通过 emacs 中的 Haskell-Mode 运行 GHCi 时,一切正常!

我想知道我在 EclipseFP 中的配置是否有问题,或者我是否可以强制 GHCi 也搜索用户本地模块。

顺便说一句,我已经尝试过 -i 选项将本地搜索路径传递给 CHCi

-i~/Library/Haskell/ghc-7.6.3/lib/

但显然,GHCi 仅在指定路径中查找源文件(例如 Parsec.hs 和 Parsec.lhs)而不是接口文件(Parsec.hi)。

如果您能帮助我在 Eclipse 中体验 Haskell 编程的乐趣,我将不胜感激!

谢谢!

4

1 回答 1

0

在 Eclipse 中,已为您在模块上运行的 GHCi 创建了运行配置。这将为您提供传递给 GHCi 的确切参数。它应该引用用户包 db 和你的模块需要的所有包(确保正确的依赖关系在 Cabal 文件中)。EclipseFP 默认在用户数据库中安装包,所以通常这工作正常。您不需要在 EclipseFP 中将特定目录添加到 GHCi。

于 2013-12-23T16:22:12.820 回答