2010-07-23 20 views
5

我正在嘗試將我的Haskell項目拆分爲一個庫和一組依賴庫的可執行文件。當我嘗試編譯現在我得到以下錯誤:Haskell壞界面文件

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") 

我相信,p可能是與ghc包相關的p標誌。它是否正確?我是否需要在我的cabal文件的某處添加更多配置選項來支持此選項?

回答

2

這就是說它找到了一個分析構建,但是你正在構建Main.hs而不啓用分析。快速修復:

  • 能夠在構建分析爲Main.hs
  • 構建和分析安裝<MyModule>啓用

無論哪種方式,將類似於

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

命令開始編譯帶有動態鏈接的可執行文件時遇到了類似的問題。

我通過調用cabal install --ghc-option=-dynamic pkg編譯了一個庫和可執行文件。

可執行文件是使用動態鏈接構建的,但庫部分不可用。

我假設使用--ghc-option=-dynamic選項導致庫的靜態版本也是使用動態鏈接構建的。

因爲Cabal-1.14我可以使用--enable-executable-dynamic選項,它可以正常工作。