2011-09-07 77 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文件中的评论。