rof*_*fer 3 linker haskell linker-errors ghc cabal
我最近制作了一个cabal包,可以在这里看到 它包含一个库和一些使用它的小例子程序.一切都按照预期建立和运作.
我想在一个使用这个库的新包中构建一个可执行文件,但是我继续遇到一个我无法破译的链接错误:
/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'
Run Code Online (Sandbox Code Playgroud)
collect2:错误:ld返回1退出状态为了使诊断更简单我将其中一个示例程序移动到我的新包中,发现它甚至无法正确构建.您可以在此处找到该可执行文件的版本.
从这一点我得出结论,问题可能出现在我的.cabal文件中,但我看不出有什么问题.该错误似乎也指代了cabal为第一个包自动生成的Paths_rlglue模块.
任何人都可以帮助我理解为什么我收到此错误?
您需要在exposed-modules或其他模块中包含Paths_rlglue模块,例如项目中的任何其他模块,以便Cabal将其链接.
Cabal应该更好地告诉你发生了什么,请参阅https://github.com/haskell/cabal/issues/1746.