Haskell cabal 构建未定义引用错误和重复重新编译
Haskell cabal build undefined reference error and duplicate recompilation
我的问题分为两部分。首先是当我编译我的项目时,我得到一长串形式为
的错误
(.text+0x137f): undefined reference to `raytrzuAd6RComi0WmBiuT4685WWH_Types_zdfBinaryColor_closure'
可以找到完整的错误列表here
可以找到产生此错误的代码 here.
我正在使用 ghc 7.10.1 和 cabal 1.22.4.0。
我的问题的第二部分是,尽管遵循与 this question 相同的 cabal 结构,但 cabal 仍然在每次 cabal 构建时重新编译库 3 次,尽管可执行文件和库都具有唯一的 hs-source-dir
并取决于图书馆。
编辑:就三重编译而言,第一次构建 .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 和分析引起的。
您应该在 Cabal 文件的 other-modules
字段中包含所有其他未导出的模块,否则在生成最终库或可执行文件时它们将无法正确链接。
您可以查看 the Cabal User's Guide 了解更多信息(尽管这几乎总结了 other-modules
的情况!)。
我的问题分为两部分。首先是当我编译我的项目时,我得到一长串形式为
的错误 (.text+0x137f): undefined reference to `raytrzuAd6RComi0WmBiuT4685WWH_Types_zdfBinaryColor_closure'
可以找到完整的错误列表here 可以找到产生此错误的代码 here.
我正在使用 ghc 7.10.1 和 cabal 1.22.4.0。
我的问题的第二部分是,尽管遵循与 this question 相同的 cabal 结构,但 cabal 仍然在每次 cabal 构建时重新编译库 3 次,尽管可执行文件和库都具有唯一的 hs-source-dir
并取决于图书馆。
编辑:就三重编译而言,第一次构建 .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 和分析引起的。
您应该在 Cabal 文件的 other-modules
字段中包含所有其他未导出的模块,否则在生成最终库或可执行文件时它们将无法正确链接。
您可以查看 the Cabal User's Guide 了解更多信息(尽管这几乎总结了 other-modules
的情况!)。