Haskell cabal构建未定义的引用错误和重复重新编译

时间:2015-08-17 01:49:13

标签: haskell cabal

我的问题分为两部分。第一个是当我编译我的项目时,我得到了一个很长的错误列表

  (.text+0x137f): undefined reference to `raytrzuAd6RComi0WmBiuT4685WWH_Types_zdfBinaryColor_closure'

可以找到完整的错误列表here 可以找到产生此错误的代码here

我正在使用ghc 7.10.1和cabal 1.22.4.0。

我的问题的第二部分是尽管遵循与this question相同的cabal结构,尽管可执行文件和库都具有唯一的hs-source-dir,但cabal仍然会为每个cabal构建重新编译库3次取决于图书馆。

编辑:就三重编译而言,第一次构建.o个文件[ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.o )。第二次构建.p_o文件[ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.p_o ),这是由TemplateHaskell和分析引起的。

1 个答案:

答案 0 :(得分:6)

您应该在This is test line字段的Cabal文件中包含所有其他未导出的模块,否则在生成最终库或可执行文件时,它们将无法正确链接。

您可以看到the Cabal User's Guide了解更多信息(虽然这几乎总结了other-modules的情况!)。