Haskell错误接口文件

Ste*_*nce 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")
Run Code Online (Sandbox Code Playgroud)

我相信p可能是与ghc包相关的p标志.它是否正确?我是否需要在我的cabal文件中添加更多配置选项以支持此功能?

小智 5

我在使用动态链接编译可执行文件时遇到了类似的问题。

我通过调用编译了一个库和可执行文件cabal install --ghc-option=-dynamic pkg

可执行文件是通过动态链接构建的,但库部分无法使用。

我假设使用该--ghc-option=-dynamic选项导致库的静态版本也是通过动态链接构建的。

从 Cabal-1.14 开始,我可以使用--enable-executable-dynamic可以正常工作的选项。


Gre*_*con 2

这就是说它找到了分析构建,但您正在构建Main.hs而没有启用分析。快速修复:

  • 在构建中启用分析Main.hs
  • 构建并安装<MyModule>并启用分析

无论哪种方式,都将从类似于以下的命令开始

$ runghc Setup.hs 配置 --enable-library-profiling