Windows 10上的ghci错误:无法加载用户指定的.o / .so / .DLL(addDLL:pthread

时间:2018-04-03 19:07:21

标签: haskell package pthreads ghci

我在Windows 10上安装了Haskell Platform版本8.2.2(Full,64位).ghc工作,还有WinGHCi。有几个问题: - 在cygwin中运行ghci会出现此错误:

GHCi,版本8.2.2:http://www.haskell.org/ghc/ :?求助 :无法加载用户指定的.o / .so / .DLL(addDLL:未加载pthread或依赖项。(Win32错误193))尝试加载时:(动态)pthread搜索的其他目录:(无)

- 在PowerShell中运行ghci只会导致PowerShell冻结 - 使用cabal安装软件包会产生类似的错误消息 - ghc-pkg check会产生大量的警告,其中包括很多引用ghc-8.0.1的警告,ghc-8.0.1是我电脑上最新的ghc版本 未设置GHC_PACKAGE_PATH。我的配置中找不到任何引用ghc-8.0.1的内容。 (cabal.config文件包含Haskell平台下载页面中给出的定义。)

错误消息的原因和解决办法“:无法加载用户指定的.o / .so / .DLL(addDLL:未加载pthread或依赖项。(Win32错误193))?

2 个答案:

答案 0 :(得分:2)

我无法在评论中发帖,所以我会提供我在这里找到的内容。随意删除我的回答"如果这不符合任何stackoverflow指南。

我在Windows 10上全新安装完整的64位Haskell平台时遇到了同样的错误。

我尝试搞乱另一个项目提交的pthread.dll(确切地说是Lilypond)。当ghci运行stack ghci时,我将它添加到Stack添加的其他目录之一。

Ghci可以找到它,但无法加载它。所以问题不在于ghci没有找到任何与pthread相关的东西。

以下是参考输出:

$ stack ghci
The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
<command line>: user specified .o/.so/.DLL could not be loaded (addDLL: C:\Users\Alice\AppData\Local\Programs\stack\x86_64-windows\msys2-201505)
Whilst trying to load:  (dynamic) C:\Users\{user}\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin\pthread.dll
Additional directories searched:   C:\Users\{user}\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin
   C:\Users\{user}\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib

我还没有任何进一步的信息。但是我希望我提供的内容可以提供帮助。

答案 1 :(得分:1)

此页显示:http://euterpea.com/troubleshooting/

“尝试启动GHCi,WinGHCI或运行GHC失败,并出现与pthread.dll相关的错误,例如:无法加载用户指定的.o / .so / .DLL(addDLL:pthread或依赖项未加载。( Win32错误193))

如果您已经安装了Lilypond,很遗憾,这是与Haskell Platform的最新版本目前不兼容的。目前只有三种解决方法:

选项1:从PATH环境变量中删除Lilypond的bin文件夹。如果您有用户路径和系统路径,则必须从两者中删除与Lilypond相关的条目,而不仅仅是用户路径。您可能需要重新启动才能使GHCi再次工作。通过直接创建Lilypad.exe的桌面快捷方式,您仍然应该能够为Lilypond运行GUI。如果从命令行使用,请使用包含文件夹的完整路径来调用可执行文件。除非您使用自定义安装位置,否则Lilypadd,lilypond,midi2ly以及Lilypond随附的其他程序将位于此文件夹中:C:\ Program Files(x86)\ LilyPond \ usr \ bin

选项2:使用Haskell Platform 8.0.2a(核心版或完整版)。

选项3:卸载Lilypond。仅当安装较旧并且您不打算再使用它时才建议这样做。否则,请先尝试选项1。“

HTH