ghc-mod无法找到用户安装的模块
问题描述:
我有一种情况,其中ghc-mod
无法找到安装在我的〜/ .ghc /目录中的模块。ghc-mod无法找到用户安装的模块
程序(foo.hs)就是:
import Control.Monad.Loops
main = undefined
ghci
负荷foo.hs
没有任何错误。
ghc-pkg list
产生输出:
/Library/Frameworks/GHC.framework/Versions/7.8.3-x86_64/usr/lib/ghc-7.8.3/package.conf.d
Cabal-1.18.1.4
GLURaw-1.4.0.1
...
~/.ghc/x86_64-darwin-7.8.3/package.conf.d:
...
monad-loops-0.4.2.1
但ghc-mod check foo.hs
错误不与:
x.hs:4:8:Could not find module ‘Control.Monad.Loops’Perhaps you meant Control.Monad.Cont (from mtl-2.1.3.1) Control.Monad.List (from mtl-2.1.3.1) Control.Monad.Trans (from mtl-2.1.3.1)Use -v to see a list of the files searched for.
ghc-mod
位于〜/资源库/哈斯克尔/ bin并ghc-mod -v
发射:
ghc-mod version 5.0.1.2 compiled by GHC 7.8.3
...
有点奇怪的是我在Haskell模式下在Emacs中加载foo.hs
时不会出现错误,并且推测也使用ghc-mod
。
有没有办法进一步调试和/或配置ghc-mod来查看我的〜/ .ghc目录?
答
答案是:ghc-mod
将寻找一个cabal.sandbox.config
文件在当前工作目录下的所有父目录和使用,如果它发现一个,那就是躲在我~/.ghc
包目录。
+1
看起来我发现你的旧问题;虽然我有类似的问题,但这不是解决我的问题的解决方案。我做了搜索,并且没有隐藏在父目录中的'cabal.sandbox.conf'。这让我仍然没有解决方案,不幸的是......--( – 2015-01-06 06:37:22
这是一个cabal项目的一部分吗?如果是这样的话,那么当前的ghc-mod中有一个bug可能需要一个“cabal clean”,如果你已经改变了已安装的软件包的话。 – 2014-09-05 18:37:40
否 - 目录中没有cabal文件。 – ErikR 2014-09-05 18:48:41
Cabal通常是安装用户库时最简单和最安全的方式。如果你添加一个cabal文件,把它指向你的'foo.hs',然后运行'cabal install',你应该很好。您还需要在cabal文件中添加'monad-loops'作为依赖项,但'cabal init'会为您创建一个框架文件,有时您可以从代码中为您解决这个问题。 – bheklilr 2014-09-05 19:22:35