如何查询Rust版本与LLVM版本的对应关系,并选择适配LLVM 19及以下版本的Rust版本
如何查询Rust版本与LLVM版本的对应关系,并选择适配LLVM 19及以下版本的Rust版本
遇到这种LLVM版本不兼容的问题确实挺闹心的,我之前做编译器相关项目时也踩过类似的坑,给你分享几个靠谱的解决方法:
一、快速确认本地Rust版本的LLVM依赖
如果你想查自己已经装的Rust用的是哪个LLVM版本,直接在终端跑这个命令就行:
rustc --version --verbose
输出内容里会有一行LLVM version: x.x.x,这就是当前Rust对应的LLVM版本——就像你现在查到1.87.0对应20.1.1那样。
二、查找适配LLVM 19的Rust版本(未安装的版本)
要找到依赖LLVM 19及以下的Rust版本,有两个最权威的途径:
- 查官方发布公告:每个Rust稳定版的官方发布公告里,都会明确写清楚该版本依赖的LLVM版本。你可以从较新的版本(比如1.86.0)往回找,找到公告里标注使用LLVM 19的版本就行。一般Rust的大版本更新会同步升级LLVM,所以1.86.0应该就是适配LLVM 19的版本之一。
- 看仓库配置文件:在rust-lang/rust的官方仓库里,每个版本分支下的
src/llvm-project/LLVM_VERSION.txt文件,直接记录了对应Rust版本的LLVM版本号。比如切换到1.86.0的分支,打开这个文件就能看到LLVM的具体版本是19.x。
三、安装适配的Rust版本
确定好目标版本后,用rustup一键安装就行,比如要装1.86.0:
rustup install 1.86.0
装完后可以再用rustc --version --verbose验证一下LLVM版本是否符合要求。
如果需要长期维护这个项目,还可以在项目根目录创建rust-toolchain.toml文件,固定项目使用的Rust版本,避免后续误升级导致兼容问题:
[toolchain] channel = "1.86.0"
内容来源于stack exchange




