2010-07-23 31 views
5

Tôi đang cố gắng lấy dự án Haskell của mình và chia nó ra thành một thư viện và một tập các tệp thực thi phụ thuộc vào thư viện. Khi tôi cố gắng biên dịch ngay bây giờ, tôi nhận được lỗi sau:Haskell Bad Interface File

src/Main.hs:23:0: 
    Bad interface file: /Users/<MyHomeDir>/.cabal/lib/Core-0.0.1/ghc-6.12.1/<MyModule>.hi 
     mismatched interface file ways (wanted "", got "p") 

Tôi tin rằng p có thể là cờ p liên quan đến gói ghc. Điều này có đúng không? Tôi có cần phải thêm các tùy chọn cấu hình khác ở đâu đó vào tệp cabal để hỗ trợ việc này không?

Trả lời

2

Điều đó nói rằng nó đã tìm thấy bản dựng cấu hình, nhưng bạn đang xây dựng Main.hs mà không bật hồ sơ. Sửa nhanh:

  • phép hồ sơ trong việc xây dựng cho Main.hs
  • xây dựng và cài đặt <MyModule> với profiling kích hoạt

Dù bằng cách nào, mà sẽ bắt đầu với một lệnh tương tự

$ runghc Setup.hs configure --enable-library-profiling
3

Tôi gặp phải một vấn đề tương tự khi biên dịch các tập tin thực thi với liên kết động.

Tôi đã biên soạn một thư viện và thực thi bằng cách gọi cabal install --ghc-option=-dynamic pkg.

Tệp thi hành được tạo bằng liên kết động nhưng phần thư viện không sử dụng được.

Tôi giả sử sử dụng tùy chọn --ghc-option=-dynamic gây ra phiên bản tĩnh của thư viện được tạo với liên kết động.

Vì Cabal-1.14 tôi có thể sử dụng tùy chọn --enable-executable-dynamic hoạt động chính xác.

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