2014-09-05 76 views
0

我有一種情況,其中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目錄?

+0

這是一個cabal項目的一部分嗎?如果是這樣的話,那麼當前的ghc-mod中有一個bug可能需要一個「cabal clean」,如果你已經改變了已安裝的軟件包的話。 – 2014-09-05 18:37:40

+0

否 - 目錄中沒有cabal文件。 – ErikR 2014-09-05 18:48:41

+0

Cabal通常是安裝用戶庫時最簡單和最安全的方式。如果你添加一個cabal文件,把它指向你的'foo.hs',然後運行'cabal install',你應該很好。您還需要在cabal文件中添加'monad-loops'作爲依賴項,但'cabal init'會爲您創建一個框架文件,有時您可以從代碼中爲您解決這個問題。 – bheklilr 2014-09-05 19:22:35

回答

1

答案是:ghc-mod將尋找一個cabal.sandbox.config文件在當前工作目錄下的所有父目錄和使用,如果它發現一個,那就是躲在我~/.ghc包目錄。

+1

看起來我發現你的舊問題;雖然我有類似的問題,但這不是解決我的問題的解決方案。我做了搜索,並且沒有隱藏在父目錄中的'cabal.sandbox.conf'。這讓我仍然沒有解決方案,不幸的是......--( – 2015-01-06 06:37:22

相關問題