2011-09-07 59 views
14

我得到這個當我想重新編譯xmonad更改配置:不明確的模塊名稱'前奏」

Implicit import declaration: 
    Ambiguous module name `Prelude': 
     it was found in multiple packages: base haskell98-2.0.0.0 

Xmonad經吃豆子安裝。當我得到這個錯誤時,我從pacman中刪除了xmonad,然後嘗試安裝xmonad。我再次得到了上述錯誤,但我能夠通過從cabal文件中刪除haskell98來解決它。

現在我想用MOD-Q重新配置xmonad,錯誤再次出現,我不知道如何解決這個問題。任何幫助讚賞。

我用GHC 7.0.3版(從哈斯克爾平臺)

回答

15

試試這個:

ghc-pkg hide haskell98 
+0

啊,我只是設法得到它與下面的命令工作: 'CD〜/ .xmonad GHC xmonad.hs -hide包haskell98 MV xmonad-x86_64的Linux的xmonad-x86_64的,linux.good mv xmonad xmonad-x86_64-linux' 然後我重新啓動我的電腦(重新啓動X可能就夠了)。 現在我需要以某種方式自動執行此操作。另外我需要學習如何格式化評論。 – somesoaccount

+0

我剛剛注意到你提到了ghc-pkg。我早些時候嘗試過,但沒有奏效。 – somesoaccount

+0

好吧,我很困惑。我想 - 我曾嘗試過你的建議,但顯然我沒有。你的解決方案就像一個魅力! – somesoaccount

2

在我的情況下藏匿haskell98不幸的是不夠的,我不得不從建設 - 刪除過時haskell98取決於我的.cabal構建文件中的列表(當然保持base> = 4)。 上面寫着前:

build-depends: 
    base >= 4, 
    haskell98 

...然後...

build-depends: 
    base >= 4 

隨着該錯誤消息 「不明確的模塊名稱'前奏'」 上面消失了。

+0

當我這樣做時,我得到了'無法找到模塊'系統' –

1

看到這個GHC bug ticket就同一議題:

GHC開始7.2.1版本使用haskell98 包和base封裝在同一時間將不支持。 haskell-src包 有這兩個在build-depends,所以它將需要被 修改。大多數情況下,你想要做的就是從build-depends中刪除haskell98 ,並將任何進口的Haskell 98模塊修改爲 指向它們的基本等價物。

這個bug票被關閉(不修復),和原來的過濾器迴應:

是的,從.cabal文件中刪除haskell98似乎已經解決了它 - 它 並編譯沒有錯誤。它看起來像沒有任何進口 to haskell98,因爲根據.cabal文件中的評論。