Windows 11下llvm-sys构建失败:已装llvm-config却无法识别LLVM
解决llvm-sys构建失败的问题
先抠环境变量的细节
- 确认
LLVM_SYS_130_PREFIX指向的路径:必须是LLVM编译后的输出根目录(比如D:\llvm-13.0.1\build),不是源码目录。如果路径里有空格,记得用引号括起来,比如set LLVM_SYS_130_PREFIX="D:\Program Files\llvm-13.0.1-build" - 环境变量要和
cargo build在同一个终端生效:临时设置的环境变量只对当前终端有效,别在一个终端设变量,换另一个终端执行编译 - 终端里先验证:输入
echo %LLVM_SYS_130_PREFIX%确认路径正确,再输llvm-config --version确认返回13.0.1
检查LLVM编译的关键选项
llvm-sys对LLVM编译有硬性要求,源码编译时没开这些选项肯定报错:
- 必须编译成动态链接库:CMake配置时加
BUILD_SHARED_LIBS=ON,VS默认可能生成静态库 - 必须开启RTTI:CMake配置时加
LLVM_ENABLE_RTTI=ON,llvm-sys依赖这个特性 - 编译目标要和cargo匹配:比如VS编译的是x64版本,就用
cargo build --target x86_64-pc-windows-msvc指定目标架构
直接指定llvm-config路径
如果环境变量折腾半天没用,直接给llvm-sys指明llvm-config的位置:
set LLVM_CONFIG_PATH="D:\llvm-13.0.1\build\bin\llvm-config.exe" && cargo build
把路径换成你实际的llvm-config.exe所在位置就行
清缓存重试
- 先清cargo缓存:执行
cargo clean - 如果之前LLVM编译选项错了,直接删LLVM的build文件夹,按正确配置重新编译一遍
内容的提问来源于stack exchange,提问作者Tristan Fox
相关产品推荐
相关产品推荐

