4

Ubuntu我最近将工作中的 PC 从Arch Linux. 我现在收到以下错误(我正在使用堆栈来构建我的项目):

setup-Simple-Cabal-1.22.4.0-ghc-7.10.2:缺少对外部库的依赖:
*缺少C库:HSrts-ghc7.10.2
这个问题通常可以通过安装提供该库的系统包来解决(你可能需要“-dev”版本)。如果该库已安装但位于非标准位置,则可以使用标志 --extra-include-dirs= 和 --extra-lib-dirs= 指定它的位置。

据我了解,Linux 发行版的差异不应该引起任何问题。

我尝试过的事情:
- 使用 --extra-lib-dirs 添加库所在的路径 -
确保两个系统的堆栈/ghc 版本相同 -
未能成功地找到两个系统之间的相关差异
( gcc 版本不同但没有改变任何东西)

我有一个基于 ubutu 的 docker 容器,它可以毫无问题地构建。

我唯一能想到的是这个库的处理方式与一些随机的 C 库不同,因为它包含 Haskell-Runtime。但我不知道这种差异会是什么。或者不同的处理方式会如何导致我的 Arch 系统出现问题。

这是我的 .cabal 文件(该文件夹还包含整个项目): https ://github.com/opencog/atomspace/blob/master/tests/haskell/libExecutionOutputTest/opencoglib.cabal

4

1 回答 1

1

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

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

你将它添加到你的 stack.yaml 文件中:

...
ghc-options:
    package-name: -lHSrts-ghc7.10.2
...

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

于 2015-12-15T07:42:37.033 回答