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

使用Cabal构建Haskell项目时遇Main.o文件缺失错误求助

Cabal构建Haskell项目链接错误的解决步骤

问题现象

执行cabal init初始化项目、cabal build构建时,出现链接错误:realgcc.exe找不到指定路径下的Main.o文件,提示gcc.exe链接阶段失败(退出码1)。本地安装的GHC版本为8.10.7,但构建配置实际使用的是ghc-9.2.5,Main代码为标准Hello World:

module Main where

main :: IO ()
main = putStrLn "Hello, Haskell!"

核心原因

Cabal使用的GHC版本(9.2.5)与本地已安装的GHC版本(8.10.7)不匹配,导致编译生成的目标文件路径、格式存在差异,链接阶段无法定位到正确的Main.o文件。

解决方法

  • 确认版本匹配情况
    执行以下命令,分别查看本地全局GHC版本和Cabal当前环境使用的GHC版本:

    ghc --version
    cabal exec ghc -- --version
    
  • 临时指定GHC版本构建
    直接在构建命令中指定本地的8.10.7版本:

    cabal build --with-compiler=ghc-8.10.7
    
  • 永久配置项目使用指定GHC版本
    在项目根目录新建或修改cabal.project文件,添加以下内容:

    with-compiler: ghc-8.10.7
    

    后续执行cabal build时会自动使用该版本。

  • 清理旧构建产物
    先删除之前用不匹配版本生成的残留文件,再重新构建:

    cabal clean
    cabal build
    
  • 适配Cabal与GHC版本兼容性
    GHC 8.10.7适配的Cabal版本范围为3.2.x~3.4.x,若当前Cabal版本超出此范围,可执行以下命令调整:

    cabal upgrade --constraint='cabal-install <3.5'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:25:16