Cabal:重建软件包以使用较新的库

西蒙·h

我正在使用带有GHC 7.6.3的Ubuntu 14.10和通过Ubuntu软件包安装程序安装的cabal,并尝试使用Heap数据结构,我使用以下方法天真地安装了数据结构:

cabal install heap

一旦开始将库导入到代码中,就会出现以下链接错误:

...
Loading package primitive-0.5.0.1 ... linking ... done.
...
Loading package heap-1.0.0 ... linking ... done.
...
Loading package primitive-0.5.2.1 ... linking ... done
...

GHCi runtime linker: fatal error: I found a duplicate definition for symbol
   hsprimitive_memset_Word32
whilst processing object file
   /home/simon/.cabal/lib/primitive-0.5.2.1/ghc-7.6.3/HSprimitive-0.5.2.1.o
This could be caused by:
   * Loading two different object files which export the same symbol
   * Specifying the same object file twice on the GHCi command line
   * An incorrect `package.conf' entry, causing some object to be
     loaded twice.
GHCi cannot safely continue in this situation.  Exiting now.  Sorry.

这个答案从概念上解释了怎么做,但是说明不够具体,我无法遵循。

我如何让Heap使用Primitive-0.5.2.1(我假设这个轻度使用的库是已过期的库),还是应该做一些完全不同的事情?

埃里克

一种解决方案可能是专门安装以下版本的早期版本heap

cabal install heap-0.6.0

您可能必须首先取消注册heap-1.0.0。

另一个选择是删除〜/ .ghc目录。当然,您将必须重新安装cabal软件包。

我认为最好的选择是开始为您的项目使用阴谋沙箱。

编辑:heap-1.0.0包含QuickCheck测试,因此引入了所有QuickCheck依赖项。要在没有QuickCheck的情况下安装该版本,请尝试以下操作:

  1. 在新目录中,运行 cabal get heap-1.0.0
  2. cd heap-1.0.0
  3. 编辑heap.cabal并删除该Build-Depends:
  4. cabal install

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安装较旧的R软件包?

来自分类Dev

Cabal:重建软件包以使用较新的库

来自分类Dev

使用cabal2nix为不在nixpkgs中的软件包创建本地nix环境

来自分类Dev

我是否总是需要重建docker才能安装新的pip软件包?

来自分类Dev

使用CMAKE查找到开发库的软件包

来自分类Dev

使用Cabal安装Haskell软件包而无需连接互联网

来自分类Dev

如何在较新的平台上安装Python .whl软件包?(pep425tags)

来自分类Dev

如何创建和使用Java Card库软件包?

来自分类Dev

如何使用堆栈/ cabal顺序构建每个haskell软件包?

来自分类Dev

使用非Debian托管库构建Debian软件包

来自分类Dev

使用pip安装新软件包时,防止已安装的软件包升级

来自分类Dev

在存储库中“物理地”将具有较旧版本的软件包降级

来自分类Dev

无法使用debuild重建软件包

来自分类Dev

如何迁移到较新的Python版本并仍然使用旧版本中的软件包?

来自分类Dev

如何安装较旧的R软件包?

来自分类Dev

由于Meteorite软件包,Meteor无法启动(使用Meteorite软件包设置了较旧的Meteor版本)

来自分类Dev

我是否总是需要重建docker才能安装新的pip软件包?

来自分类Dev

如何使“ dnf”使用“ copr”存储库中的软件包

来自分类Dev

易于降级到较旧的软件包版本

来自分类Dev

软件取决于软件包的较旧版本,而不是MINT 18所使用的

来自分类Dev

如何在pypi上查看较新的软件包

来自分类Dev

其他Ubuntu版本存储库中的较新软件包

来自分类Dev

使用NPM从专用存储库安装软件包

来自分类Dev

无法安装新的软件/软件包

来自分类Dev

使用新Python和旧软件包的virtualenv

来自分类Dev

如何手动将软件包安装到使用Cabal的项目中

来自分类Dev

使用DEB软件包配置APT存储库

来自分类Dev

使用C ++和Stack / Cabal编译Haskell软件包

来自分类Dev

以下软件包已损坏,因为它们依赖的其他软件包丢失。这些损坏的包必须重建才能使用

Related 相关文章

  1. 1

    如何安装较旧的R软件包?

  2. 2

    Cabal:重建软件包以使用较新的库

  3. 3

    使用cabal2nix为不在nixpkgs中的软件包创建本地nix环境

  4. 4

    我是否总是需要重建docker才能安装新的pip软件包?

  5. 5

    使用CMAKE查找到开发库的软件包

  6. 6

    使用Cabal安装Haskell软件包而无需连接互联网

  7. 7

    如何在较新的平台上安装Python .whl软件包?(pep425tags)

  8. 8

    如何创建和使用Java Card库软件包?

  9. 9

    如何使用堆栈/ cabal顺序构建每个haskell软件包?

  10. 10

    使用非Debian托管库构建Debian软件包

  11. 11

    使用pip安装新软件包时,防止已安装的软件包升级

  12. 12

    在存储库中“物理地”将具有较旧版本的软件包降级

  13. 13

    无法使用debuild重建软件包

  14. 14

    如何迁移到较新的Python版本并仍然使用旧版本中的软件包?

  15. 15

    如何安装较旧的R软件包?

  16. 16

    由于Meteorite软件包,Meteor无法启动(使用Meteorite软件包设置了较旧的Meteor版本)

  17. 17

    我是否总是需要重建docker才能安装新的pip软件包?

  18. 18

    如何使“ dnf”使用“ copr”存储库中的软件包

  19. 19

    易于降级到较旧的软件包版本

  20. 20

    软件取决于软件包的较旧版本,而不是MINT 18所使用的

  21. 21

    如何在pypi上查看较新的软件包

  22. 22

    其他Ubuntu版本存储库中的较新软件包

  23. 23

    使用NPM从专用存储库安装软件包

  24. 24

    无法安装新的软件/软件包

  25. 25

    使用新Python和旧软件包的virtualenv

  26. 26

    如何手动将软件包安装到使用Cabal的项目中

  27. 27

    使用DEB软件包配置APT存储库

  28. 28

    使用C ++和Stack / Cabal编译Haskell软件包

  29. 29

    以下软件包已损坏,因为它们依赖的其他软件包丢失。这些损坏的包必须重建才能使用

热门标签

归档