无法在VSCode中编译第一个Haskell程序

问题描述

我刚刚在Windows中安装了Stack GHCI和Visual Studio Code。我试图构建和运行第一个简单的Haskell putStrln程序,但是编译失败。 在VS Code终端中,我输入: PS C:\Users\rmili\Documents> stack new TryHaskell 然后创建了一个文件夹“ TryHaskell”,其中包含自动创建的文件“ Lib.hs”和“ Main.hs”

我试图构建并运行hs文件。但是我遇到了以下错误

  1. 在新终端中,输入PS C:\Users\rmili\Documents\TryHaskell> stack build后,将导致以下错误
    Error Messages:
         "'C:\Users\rmili\AppData\Local\Programs\stack\x86_64-windows\ghc-8.8.4\bin\ghc-pkg.exe'
    exited with an error:
    ghc-pkg.exe: hLock: permission denied (Access is denied.)
    )"
  1. 在Main.hs和Lib.hs的顶部,行module Main wheremodule Lib的下面都有卷曲线,并显示错误消息:
    readCreateProcess: stack "exec" "ghc" "--" "-rtsopts=ignore" "-outputdir" "C:\\Users\\rmili\\AppData\\Local\\Temp\\hie-bios-98c9848bfed41b00" "-o" "C:\\Users\\rmili\\AppData\\Local\\hie-bios\\wrapper-4da94d68375fab32d2147da1837e9611.exe" "C:\\Users\\rmili\\AppData\\Local\\hie-bios\\wrapper-4da94d68375fab32d2147da1837e9611.hs" (exit 1): Failedcompiler
    Peek Problem (Alt+F8)
    No quick fixes available

我的GHCI目录看起来不错,如下所示:

GHCI Directory

更新:杀毒软件似乎对我来说是个问题,因为每当我尝试构建新的hs文件时,诺顿都会弹出一个窗口,说数据保护程序阻止了Haskell服务器的操作。在我要求诺顿明确排除此类操作后,我可以成功编译并运行我的hs文件

但是,问题是“模块主位置”和“模块库”下的卷曲线仍然保留。如何删除上面第2点中所示的卷曲线及其相关的错误消息?

解决方法

欢迎来到Haskell!

不幸的是,Windows上的Haskell似乎有各种“权限被拒绝”的错误。 (https://gitlab.haskell.org/ghc/ghc/-/issues/2924)。除了确保所有软件都是最新的,尝试使用不同的配置并尝试直接使用ghc而不使用stack进行构建之外,我没有其他直接的解决方法。

要尝试的其他事情包括确保以管理员身份运行,并禁用防病毒软件。