You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过ghcup配置Haskell VS Code环境遇Stack相关错误求助

解决VS Code Haskell扩展调用Stack报错及Stack依赖旧GHC版本的问题

核心问题分析

  1. VS Code的Haskell扩展默认会自动检测项目类型,若你的Cabal项目中存在stack.yaml文件(可能是误生成的),会被识别为Stack项目,进而调用stack setup导致报错。
  2. Stack尝试使用GHC 8.6.5是因为项目的stack.yaml中指定的resolver版本对应旧版GHC,而aarch64架构的macOS没有该版本的预编译安装包。

解决方案

一、让VS Code扩展使用Cabal而非Stack(优先处理)

  • 打开VS Code设置,搜索Haskell: Package Manager,将其值改为cabal,强制扩展使用Cabal管理项目,避免调用Stack。
  • 检查项目根目录,若存在多余的stack.yaml文件,直接删除(你一直用Cabal开发,无需该文件),彻底避免扩展误判项目类型。

二、修复Stack的GHC版本问题(若后续需要使用Stack)

如果之后需要用Stack处理该项目,可按以下步骤修复:

  • 编辑项目根目录的stack.yaml文件,将resolver字段更新为支持aarch64 macOS的版本,例如:
    resolver: lts-21.25  # 对应GHC 9.4.8,属于支持列表中的版本
    
    或者直接指定你已通过ghcup安装的GHC 9.6.1对应的resolver:
    resolver: nightly-2023-08-01  # 该nightly版本对应GHC 9.6.1
    
  • 保存文件后,执行stack setup,Stack会自动下载并配置对应版本的GHC。
  • 备选方案(不推荐):若必须使用GHC 8.6.5,可执行stack setup --ghc-build=integer-simple让Stack从源码编译GHC,但编译耗时极长。

内容的提问来源于stack exchange,提问作者Anentropic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:12:38