我最近做了一个cabal包,可以看到 here 它由一个库和一些使用它的小例子程序组成.一切都按照预期建立和运作. 我想在一个使用这个库的新包中构建一个可执行文件,但是我继续遇到一个无
它由一个库和一些使用它的小例子程序组成.一切都按照预期建立和运作.
我想在一个使用这个库的新包中构建一个可执行文件,但是我继续遇到一个无法解密的链接错误:
/my/path/RandomAgent/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.4/rlglue-0.2.1.1/libHSrlglue-0.2.1.1.a(Agent.o):(.text+0x34f1): undefined reference to `rlgluezm0zi2zi1zi1_Pathszurlglue_version1_closure'
collect2:错误:ld返回1退出状态
为了使诊断更简单,我将其中一个示例程序移动到我的新程序包中,发现它甚至无法正确构建.您可以找到该可执行文件here的版本.
从这一点我得出结论,问题可能出现在我的.cabal文件中,但我看不出有什么问题.该错误似乎也指代了cabal为第一个包自动生成的Paths_rlglue模块.
任何人都可以帮助我理解为什么我收到此错误?
您需要在exposed-modules或其他模块中包含Paths_rlglue模块,例如项目中的任何其他模块,以便Cabal将其链接.Cabal应该更好地告诉你发生了什么,见https://github.com/haskell/cabal/issues/1746.