2011-09-07 36 views
14

tôi có được điều này khi tôi muốn biên dịch lại xmonad thay đổi cấu hình:tên module nhập nhằng 'Prelude'

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

Xmonad đã được cài đặt thông qua pacman. Khi tôi nhận được lỗi này, tôi đã xóa xmonad khỏi pacman và sau đó thử cabal install xmonad. Tôi đã nhận được lỗi trên một lần nữa nhưng tôi đã có thể giải quyết nó bằng cách loại bỏ haskell98 từ tập tin cabal.

Bây giờ tôi muốn cấu hình lại xmonad bằng MOD-Q, lỗi xuất hiện lại và tôi không biết cách sửa lỗi này. Bất kỳ trợ giúp nào được đánh giá cao.

tôi sử dụng GHC phiên bản 7.0.3 (từ nền tảng Haskell)

Trả lời

15

Hãy thử điều này:

ghc-pkg hide haskell98 
+0

Yeah, tôi chỉ cố gắng làm cho nó làm việc với các lệnh sau: 'cd ~/.xmonad GHC xmonad.hs -hide gói haskell98 mv xmonad-x86_64-linux xmonad-x86_64-linux.good mv xmonad xmonad-x86_64-linux' Sau đó, tôi khởi động lại máy tính của mình (khởi động lại X có thể đủ). Bây giờ tôi cần phải tự động hóa điều này bằng cách nào đó. Ngoài ra tôi cần phải tìm hiểu cách định dạng nhận xét. – somesoaccount

+0

Tôi chỉ nhận thấy bạn đã đề cập ghc-pkg. Tôi đã thử nó trước đó và nó không hoạt động. – somesoaccount

+0

Ok, tôi rất bối rối. Tôi đã từng thử đề xuất của bạn trước đây, nhưng rõ ràng là tôi đã không làm vậy. Giải pháp của bạn hoạt động như một sự quyến rũ! – somesoaccount

2

Trong trường hợp của tôi trốn haskell98 không may là không đủ, tôi đã phải loại bỏ các haskell98 lỗi thời từ gây dựng- phụ thuộc danh sách trong tập tin xây dựng .cabal của tôi (giữ cơ sở> = 4 tất nhiên). Nó đọc trước:

build-depends: 
    base >= 4, 
    haskell98 

... và sau đó ...

build-depends: 
    base >= 4 

Với điều đó được thông báo lỗi "tên module nhập nhằng 'Prelude" trên biến mất.

+0

Khi tôi đã làm điều đó, tôi đã nhận 'Không thể tìm thấy mô-đun 'System'' –

1

Xem GHC này bug ticket trên cùng một chủ đề:

GHC bắt đầu với phiên bản 7.2.1 sẽ không hỗ trợ sử dụng haskell98 gói và base gói cùng một lúc. Gói haskell-src có cả hai mặt hàng này trong số build-depends, vì vậy cần phải sửa đổi . Hầu hết thời gian, những gì bạn muốn làm là xóa haskell98 từ build-depends và sửa mọi nhập khẩu các mô-đun Haskell 98 thành trỏ đến các điểm tương đương cơ sở của chúng.

Vé lỗi đã được đóng cửa (không có sửa chữa), và filer gốc trả lời:

Vâng, loại bỏ haskell98 từ file .cabal dường như đã cố định nó - nó đã biên dịch mà không có lỗi. Dường như nó không có bất kỳ nhập khẩu để haskell98, bởi vì theo nhận xét trong tệp .cabal.

Các vấn đề liên quan