我正在尝试将我的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可以正常工作的选项。
这就是说它找到了分析构建,但您正在构建Main.hs而没有启用分析。快速修复:
Main.hs<MyModule>并启用分析无论哪种方式,都将从类似于以下的命令开始
$ runghc Setup.hs 配置 --enable-library-profiling