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

yqhsw0fo  于 2023-08-06  发布在  Windows
关注(0)|答案(4)|浏览(232)

我已经在Windows 10上安装了Haskell平台版本8.2.2(完整版,64位)。GHC可以工作,WinGHCi也可以。有几个问题:--在cygwin中运行ghci会出现以下错误:
GHCi,版本8.2.2:http://www.haskell.org/ghc/:?for help:无法加载用户指定的.o/.so/.DLL(addDLL:未加载pthread或依赖项。(Win32错误193))尝试加载时:(dynamic)pthread搜索的其他目录:(无)
--在PowerShell中运行ghci只会导致PowerShell冻结--使用cabal安装软件包会产生类似的错误消息-- ghc-pkg check会产生大量警告,包括许多引用ghc-8.0.1的警告,这是在我的计算机上工作的最新版本的ghc GHC_PACKAGE_PATH未设置。在我的配置中找不到任何涉及ghc-8.0.1的内容。(cabal.config文件包含HaskellPlatform下载页面中给出的定义。)
错误信息“”的原因和解决方法是什么:无法加载用户指定的.o/.so/.DLL(addDLL:未加载pthread或依赖项。(Win32错误193))?

tvz2xvvm

tvz2xvvm1#

我不能发表评论,所以我会提供我在这里找到的。如果这不符合任何stackoverflow准则,请随时删除我的“答案”。
我在Windows 10上全新安装完整的64位Haskell Plateform时遇到了同样的错误。
我试着处理另一个项目(确切地说是Lilypond)提交的pthread.dll。当ghci通过stack ghci运行时,我将其添加到Stack添加的一个附加目录中。
Ghci可以找到它,但不能加载它。所以问题不在于ghci找不到任何与pthread相关的东西。
以下是输出以供参考:

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

字符串
我还没有进一步的消息。我希望我提供的东西能有所帮助。

展开查看全部
oknwwptz

oknwwptz2#

尝试以系统管理员权限运行GHCI(在“开始”中键入“Command Pro...”,然后单击“以管理员身份运行”)。如果ghci现在工作,那么问题就解决了,因为您现在可以访问文件c:\Windows\System32\pthread.dll
要在没有管理员权限的情况下使用ghci(推荐),请更改权限(当您具有管理员权限时),以便用户可以读取pthread.dll文件:
C:\> CACLS c:\Windows\System32\pthread.dll /e /p your-username:r
(将your-username替换为您的实际用户名)
此修复的功劳归于这篇文章:https://faculty-web.msoe.edu/hasker/cs3040/ghc-install.html

628mspwn

628mspwn3#

本页说明:http://euterpea.com/troubleshooting/
“尝试启动GHCi、WinGHCI或运行GHC失败,并出现与pthread.dll相关的错误,例如:无法加载用户指定的.o/.so/.DLL(addDLL:未加载pthread或依赖项。(Win32错误193))
如果你安装了Lilypond,这是一个已知的与Haskell平台最新版本不兼容的问题。目前只有三种方法可以解决:
选项1:从PATH环境变量中删除Lilypond的bin文件夹。如果您有一个用户路径和一个系统路径,您必须从这两个路径中删除与Lilypond相关的条目,而不仅仅是用户的路径。您可能需要重新启动GHCi才能再次工作。您应该仍然能够通过直接创建Lilypad.exe的桌面快捷方式来运行Lilypond的GUI。如果从命令行使用,则使用包含文件夹的完整路径调用可执行文件。除非您使用自定义安装位置,否则Lilypad、lilypond、midi 2ly和Lilypond附带的其他程序将位于此文件夹中:C:\Program Files(x86)\LilyPond\usr\bin
选项2:使用Haskell Platform 8.0.2a(核心或完整)。
选项3:卸载Lilypond。只有当它是旧安装并且您不打算再使用它时,才建议使用此方法。否则,请先尝试选项1。”
高温高压

klsxnrf1

klsxnrf14#

我设法修复这个运行(与管理员权限)

  1. icacls C:\Windows\System32\pthread.dll /grant Users:RX

字符串
这来源于以下文件:https://faculty-web.msoe.edu/hasker/cs3040/ghc-install.html

相关问题