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

运行Haskell代码提示无法识别LLVM版本、找不到opt命令如何解决

LLVM说明

LLVM是一套开源的模块化编译器工具链,GHC(Haskell官方编译器)在部分硬件架构下编译代码时,需要调用LLVM的opt等工具完成代码优化与目标代码生成,你遇到的报错就是GHC找不到符合版本要求的LLVM组件导致的。

报错根因

你收到的报错信息如下:

: error:
Warning: Couldn't figure out LLVM version!
Make sure you have installed LLVM between [9 and 13)
ghc: could not execute: opt

该报错明确两个信息:

  • 你当前使用的GHC版本要求LLVM版本范围为 大于等于9.0,小于13.0
  • 系统环境中没有安装对应版本的LLVM,或LLVM的可执行文件路径未加入环境变量,导致GHC无法找到opt命令
各系统安装符合要求版本LLVM的方法

我们统一安装LLVM 12版本,完全符合GHC的版本要求:

Windows系统

  • 若使用Chocolatey包管理器,直接执行命令:choco install llvm --version=12.0.1
  • 手动安装可以直接下载LLVM 12.x版本的官方安装包,安装完成后将LLVM安装目录下的bin文件夹路径添加到系统环境变量PATH,重启终端后生效。

macOS系统

  • 若使用Homebrew包管理器,执行安装命令:brew install llvm@12
  • 安装完成后执行以下命令将LLVM 12加入终端环境变量:
    echo 'export PATH="/usr/local/opt/llvm@12/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    
    如果你使用bash作为默认终端,将上述命令中的.zshrc替换为.bash_profile即可。

Linux(Debian/Ubuntu 系列)

  • 执行安装命令:sudo apt update && sudo apt install llvm-12 opt-12 llc-12
  • 建立软连接让GHC可以直接识别到对应命令:
    sudo ln -s /usr/bin/opt-12 /usr/local/bin/opt
    sudo ln -s /usr/bin/llc-12 /usr/local/bin/llc
    
安装验证

终端执行命令:opt --version,如果输出的版本号在9.0到13.0区间内,即说明安装配置成功,此时重新运行Haskell代码即可正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:36:06