我的问题分为两部分。第一个是当我编译我的项目时,我得到了一个很长的错误列表
(.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和分析引起的。
答案 0 :(得分:6)
您应该在This is test line
字段的Cabal文件中包含所有其他未导出的模块,否则在生成最终库或可执行文件时,它们将无法正确链接。
您可以看到the Cabal User's Guide了解更多信息(虽然这几乎总结了other-modules
的情况!)。