【问题标题】:Cabal repl won't run, "can't load .so/.DLL for: ..."Cabal repl 无法运行,“无法加载 .so/.DLL for: ...”
【发布时间】:2015-09-07 19:09:00
【问题描述】:

我正在尝试运行一个使用conduitconduit-extra 的项目。这是主要模块:

import Data.Conduit

main = do
    putStrLn "Done"

cabal 文件需要base、conduit 和conduit-extra:

...

build-depends:     base >=4.8 && <4.9,
                   conduit >=1.2.5 && <1.3,
                   conduit-extra >= 1.1.9.1 && <1.2
...

然而,当我运行 cabal repl 时,会发生这种情况:

Johns-iMac:The-Project john$ cabal repl
Preprocessing executable 'The-Project' for The-Project-0.1.0.0...
GHCi, version 7.10.2: http://www.haskell.org/ghc/  :? for help
<command line>: can't load .so/.DLL for: /Library/Haskell/ghc-7.10.2-x86_64/lib/exceptions-0.8.0.2/libHSexceptions-0.8.0.2-8GsEeHgaIks3pVGk6GaELJ-ghc7.10.2.dylib (dlopen(/Library/Haskell/ghc-7.10.2-x86_64/lib/exceptions-0.8.0.2/libHSexceptions-0.8.0.2-8GsEeHgaIks3pVGk6GaELJ-ghc7.10.2.dylib, 5): Library not loaded: @rpath/libHStransformers-compat-0.4.0.4-DCQioW2d4vYEa3T0AmFBPv-ghc7.10.2.dylib
  Referenced from: /Library/Haskell/ghc-7.10.2-x86_64/lib/exceptions-0.8.0.2/libHSexceptions-0.8.0.2-8GsEeHgaIks3pVGk6GaELJ-ghc7.10.2.dylib
  Reason: image not found)

我刚刚完全重新安装了 Haskell 平台,而且它都是沙盒的,所以竞争依赖项应该没有任何问题。

发生了什么,我该如何解决?

更新:

我删除了沙箱(cabal.sandbox.config、.cabal-sandbox),并重新安装了依赖项:

cabal sandbox init
cabal install --only-dependencies
cabal repl

我们现在有一个新的但非常相似的错误:

Johns-iMac:The-Project john$ cabal repl
Preprocessing executable 'The-Project' for The-Project-0.1.0.0...
GHCi, version 7.10.2: http://www.haskell.org/ghc/  :? for help
<command line>: can't load .so/.DLL for: /Library/Haskell/ghc-7.10.2-x86_64/lib/hashable-1.2.3.3/libHShashable-1.2.3.3-2GTZqecVp8NJZrNuKzGxfy-ghc7.10.2.dylib (dlopen(/Library/Haskell/ghc-7.10.2-x86_64/lib/hashable-1.2.3.3/libHShashable-1.2.3.3-2GTZqecVp8NJZrNuKzGxfy-ghc7.10.2.dylib, 5): Library not loaded: @rpath/libHStext-1.2.1.3-1l1AN4I48k37RaQ6fm6CEh-ghc7.10.2.dylib
  Referenced from: /Library/Haskell/ghc-7.10.2-x86_64/lib/hashable-1.2.3.3/libHShashable-1.2.3.3-2GTZqecVp8NJZrNuKzGxfy-ghc7.10.2.dylib
  Reason: image not found)

【问题讨论】:

  • 如果你没有在 cabal 文件中列出你的模块之一,可能会让 cabal 蓬勃发展。这看起来不太可能是这里的问题,但我想我还是会提到它。 cabal clean 有时会有所帮助,但听起来您已经尝试过更极端的措施。另一个相当极端的方法是对您的.ghc 目录进行核对。
  • @dfeuer 我在一小时前重新安装了haskell
  • @dfeuer - 我can reliably produce a "can't load .so/.DLL" error when a dependency fails to list a module in the cabal file,你说的是这个吗?你知道它是否已经有错误报告了吗?

标签: haskell dll sandbox cabal conduit


【解决方案1】:

鉴于此报告指的是加载 hashable 的问题,the Github report 指的是加载异常的问题,两者都是平台提供的包而不是 GHC,我感觉平台安装程序有问题。您可以使用GHC for Mac OS Xstack 再试一次,看看是否能解决问题?

请注意,如果您使用堆栈路由,您需要在项目中运行 stack init &amp;&amp; stack build --install-ghc &amp;&amp; stack ghci。无论哪种情况:如果您先完全删除平台安装,您可能会更安全。

【讨论】:

  • 我完全删除了平台安装,重新安装,新文件夹,新沙箱,新重新安装的依赖项,同样的问题
  • 对。所以我说问题可能出在平台上,并建议您安装其他东西。我已链接到两种替代安装方法
猜你喜欢
  • 2017-09-29
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2012-01-30
  • 1970-01-01
相关资源
最近更新 更多