Haskell:Arch Linux上缺少的C库适用于Ubuntu

时间:2015-12-14 12:43:22

标签: c haskell archlinux haskell-stack

我最近将我的电脑从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

1 个答案:

答案 0 :(得分:1)

好的,我想出了一个解决方法,而不是指定.cabal文件中的库:

ctags -L cscope.files

将其添加到stack.yaml文件中:

...  
extra-libraries: HSrts-ghc7.10.2   
...

如果您的.cabal文件中也定义了exectuable,则会破坏可执行文件,因为该库不仅包含在库中。并且在可执行文件中包含运行时库会导致即时的分段错误。