我最近将我的电脑从Ubuntu
切换到Arch Linux
。
我现在收到以下错误(我使用堆栈来构建我的项目):
setup-Simple-Cabal-1.22.4.0-ghc-7.10.2:缺少对a的依赖 国外 库:
*缺少C库:HSrts-ghc7.10.2
通常可以通过安装系统包来解决此问题 提供此库(您可能需要" -dev"版本)。如果图书馆是 已安装但在非标准位置,您可以使用标志 --extra-include-dirs =和--extra-lib-dirs =指定它的位置。
据我所知,Linux发行版的不同之处不应该引起任何问题。
我尝试过的事情:
- 添加库所在的路径--extra-lib-dirs
- 确保stack / ghc的版本与两个系统的acrose相同
无法找到2个系统之间的相关差异
(gcc版本不同,但没有改变任何东西)
我有一个基于ubutu的docker容器,它在没有问题的情况下构建。
我唯一能想到的是,这个库的处理方式与一些随机C库不同,因为它包含Haskell-Runtime。但我不知道这种差异会是什么。或者不同的处理如何导致我的Arch System出现问题。
这里是我的.cabal文件(该文件夹还包含整个项目): https://github.com/opencog/atomspace/blob/master/tests/haskell/libExecutionOutputTest/opencoglib.cabal
答案 0 :(得分:1)
好的,我想出了一个解决方法,而不是指定.cabal文件中的库:
ctags -L cscope.files
将其添加到stack.yaml文件中:
...
extra-libraries: HSrts-ghc7.10.2
...
如果您的.cabal文件中也定义了exectuable,则会破坏可执行文件,因为该库不仅包含在库中。并且在可执行文件中包含运行时库会导致即时的分段错误。