Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 阴谋集团:重建包以使用更新的库_Haskell - Fatal编程技术网

Haskell 阴谋集团:重建包以使用更新的库

Haskell 阴谋集团:重建包以使用更新的库,haskell,Haskell,我正在使用Ubuntu14.10和GHC7.6.3以及通过UbuntuPackage安装程序安装的cabal,并尝试使用数据结构,我天真地使用: cabal install heap 当我开始将库导入到代码中时,出现了以下链接错误: ... Loading package primitive-0.5.0.1 ... linking ... done. ... Loading package heap-1.0.0 ... linking ... done. ... Loading package

我正在使用Ubuntu14.10和GHC7.6.3以及通过UbuntuPackage安装程序安装的cabal,并尝试使用数据结构,我天真地使用:

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目录。当然,你必须重新安装阴谋集团的软件包

我认为最好的选择是开始在你的项目中使用阴谋集团沙箱

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

  • 在新目录中,运行
    cabal get heap-1.0.0
  • cd-heap-1.0.0
  • 编辑
    heap.cabal
    并删除
    构建依赖项:
  • 运行
    cabal安装

  • 我假设您没有使用
    cabal
    来构建代码。使用
    cabal
    及其沙箱功能是避免此问题的最佳方法。我只需键入
    cabal install heap
    并最终导致此错误。如果您确实需要,还可以使用
    nix
    选项(包管理器)。我自己不使用它,但我听说比沙盒好得多。好吧,
    ghc pkg unregister heap
    和使用0.6似乎是可行的,但我不知道为什么旧代码使用新库。有没有简单的方法可以使用1.0.0?添加了关于如何安装1.0.0版的详细信息关于如何避免阴谋集团地狱的一些建议: