【问题标题】:How can i update the version of my GHC for my stack project? ERROR: ghcide compiled by GHC 8.10 failed to load packages:haskell-language-server-8.10.7如何更新堆栈项目的 GHC 版本?错误:GHC 8.10 编译的 ghcide 无法加载包:haskell-language-server-8.10.7
【发布时间】:2022-06-13 22:49:56
【问题描述】:

几个月前我创建了一个 stack haskell 项目,然后完成了它。我想添加并修复它存在的一些问题,但是当我尝试在 vs 代码(Visual Studio 代码)上打开 .hs 文件时,我在标题中遇到了错误,完整的问题在这个问题的底部。我尝试重新安装堆栈,但没有任何改变。我还将stack.yaml 解析器更新为最新的 lts 版本,即 19.9,使用 resolver: url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/9.yaml 错误似乎是我的项目正在使用我的机器没有的旧版本 ghc,特别是因为文件夹 C:\cabal\store\ghc-8.10.7 在我的机器上不存在,这是该路径中唯一存在的文件夹 @ 987654324@ 所以我的问题是,如何为我的特定堆栈项目更新我的 GHC 版本?

完整错误:ghcide compiled by GHC 8.10 failed to load packages: haskell-language-server-8.10.7~1.7.0.0.exe: can't find a package database at C:\cabal\store\ghc-8.10.7\package.db. Please ensure that ghcide is compiled with the same GHC installation as the project.

堆栈版本:2.7.5

GHCi/GHC 版本:8.10.7

IDE:VS 代码(Visual Studio 代码)

【问题讨论】:

    标签: haskell ghc haskell-stack


    【解决方案1】:

    Tl;dr 如果您想在使用 ghci 时更改 ghc(i) 的版本,请使用 ghcup set ghc (version number)。如果您想在堆栈上更改它,请使用stack config set resolver ghc-(version number)。重新制作堆栈项目也对我有帮助,所以如果你遇到困难,也可以尝试一下。

    这是一个过山车的地狱,但我终于修好了。为了澄清,我认为问题在于我有多个版本的 ghc(i),但这些不同的版本也以不同的方式安装,例如我在堆栈上有 8.10.7 版本,在 cabal 上有 9.2.3 版本,它没有帮助我也没有 8.10 ghc(i) 版本。正如您已经知道的那样,它让编译器感到困惑,就像让我感到困惑一样。我尝试删除它们并重新安装不同的版本,但它们都不起作用,即使在我确保将它们添加到路径之后也是如此。不工作是指当我在终端上写ghcghci 命令时,它们不会被识别。我回去拥有我拥有的两个版本(8.10.7 和 9.2.3)。然后我使用命令ghcup set ghc 9.2.3 将主ghc 版本设置为9.2.3,现在我可以再次使用命令ghcghci。命令stack ghci 工作,但它只在我的堆栈项目之外工作,所以我必须重新制作项目才能工作。我还使用 stack config set resolver ghc-9.2.3 将堆栈 ghc(i) 版本更改为最新版本,但随后我将其更改回 9.0.2,因为它是堆栈推荐的最后一个版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      相关资源
      最近更新 更多