视窗 10 ghc 8.4.3 添加库搜索路径错误



我在Windows 10 Pro版本1803机器上遇到了一个奇怪的ghci addLibrarySearchPath错误消息,其中Haskell平台8.4.2和8.4.3已满。以下是全新安装Haskell平台8.4.3的示例脚本,其中ghci在安装完成后立即启动:

C:UsersAdmin>ghci
GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
Prelude> import System.Random
Prelude System.Random> randomIO
ghc.exe: addLibrarySearchPath: D:GitHubhaskell-platformbuildghc-bindistlocalmingwlib (Win32 error 3): The system cannot find the path specified.
-7101299332192590302

当ghci 会话中首次发生某些 IO 操作时,会弹出该消息(不仅仅是来自 System.Random 的操作(。当ghc在较旧的Haskell平台位置查找路径时,我读过类似的错误,例如 https://ghc.haskell.org/trac/ghc/ticket/14183 中描述的错误。但是,就我而言,该 D:\GitHub 文件夹从未存在过 - 它是一个没有安装任何内容的删除驱动器。我读过的类似的 addLibrarySearchPath 错误的修复程序涉及重做阴谋集团沙箱或重新安装;在这种情况下,没有沙盒,重新安装没有区别。在卸载和重新安装之间,我清除了本地,阴谋集团和ghc文件夹,这些文件夹总是留在AppData\Roaming中。虽然错误消息在技术上不会阻止 ghci 在出现后工作,但我真的很想知道是什么原因造成的。

对此的任何见解将不胜感激。Haskell平台8.2.1或8.2.2完整版都不会出现问题。只有后来的两个平台版本才会表现出这种行为。

好吧,看来我找到了答案。

在另外两台机器上进行额外测试后,错误消息是由于完整版Haskell平台中的某些内容造成的,因为无法使用相同版本的核心选项进行复制。现在在Haskell平台GitHub问题页面上有一个与之相关的问题:

https://github.com/haskell/haskell-platform/issues/312#issuecomment-402349871

因此,如果其他人在引用 D:/GitHub/...文件夹中,您可以通过使用核心版本而不是完整版本并手动安装额外的库来避免它。当然,无论如何,Windows上的大多数人都使用core,但是我使用的是full,因为我想要网络库(手动安装过程很乏味(。

最新更新