在Windows 10 Pro 1803版计算机上,使用Haskell Platform 8.4.2和8.4.3 full时,遇到了奇怪的ghci addLibrarySearchPath错误消息。以下是全新安装的Haskell Platform 8.4.3的示例记录,其中ghci在安装完成后立即启动:
C:\Users\Admin>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:\GitHub\haskell-platform\build\ghc-bindist\local\mingw\lib (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错误阅读的修复程序涉及重做阴谋集团沙箱或重新安装;在这种情况下,没有沙盒,重新安装也没有影响。在卸载和重新安装之间,我清除了总是留在AppData \ Roaming中的本地,cabal和ghc文件夹。虽然错误消息从技术上讲在出现后并没有阻止ghci,但是我真的很想知道是什么原因造成的。
任何对此的见解将不胜感激。 Haskell Platform 8.2.1或8.2.2 full不会发生此问题。只是此行为的两个更高版本。
答案 0 :(得分:0)
好吧,看来我找到了答案。
在另外两台机器上进行了进一步测试之后,错误消息是由于Haskell Platform完整版中的某些内容引起的,因为无法使用相同版本的core选项进行复制。 Haskell Platform GitHub问题页面上现在有一个与之相关的问题:
https://github.com/haskell/haskell-platform/issues/312#issuecomment-402349871
因此,如果其他任何人在引用D:/ GitHub / ...文件夹时都遇到addLibrarySearchPath错误,则可以通过使用核心版本而不是完整版本并手动安装其他库来避免该错误。当然,Windows上的大多数人还是使用核心,但是我使用完整的核心是因为我想要网络库(对于该库,手动安装过程很繁琐)。