我刚刚安装了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
然而,当我在终端中运行GHCi或通过emacs中的Haskell-Mode运行时,一切正常!
我想知道我在EclipseFP中的配置是否有问题,或者我是否可以强制GHCi搜索用户本地模块。
顺便说一句,我已经尝试了-i选项将本地搜索路径传递给CHCi
-i~/Library/Haskell/ghc-7.6.3/lib/
但显然,GHCi只查找源文件(例如Parsec.hs和Parsec.lhs),而不是指定路径中的接口文件(Parsec.hi)。
如果你能帮我体验Eclipse中Haskell编程的快乐,我将非常感激!
谢谢!
答案 0 :(得分:0)
在Eclipse中,已经为模块上的GHCi运行创建了运行配置。这将为您提供传递给GHCi的确切参数。它应该引用用户包db和模块所需的所有包(确保正确的依赖项在Cabal文件中)。默认情况下,EclipseFP会在用户数据库中安装软件包,因此通常这样可以正常工作。您不需要在EclipseFP中向GHCi添加特定目录。