MSYS2中pacman查询到的Clang版本过旧,安装mingw-w64-x86_64-llvm后版本仍未更新的求助
兄弟,我碰到过好几个类似的情况,大概率是MSYS2环境切换不彻底或者包更新没做全的问题,给你一步步排查解决:
第一步:先彻底同步MSYS2包数据库并更新系统
很多时候旧版本问题根源是包数据库没同步到最新状态。先打开任意MSYS2终端,执行:pacman -Syu执行过程中如果提示你关闭所有MSYS2终端窗口,直接关掉就行,然后重新打开终端再补更一次:
pacman -Su这一步是确保整个MSYS2系统和包列表都处于最新状态。
第二步:确认你用对了终端环境
你安装的mingw-w64-x86_64-llvm是给MinGW64环境准备的,不是MSYS2默认的base环境。你得打开开始菜单里MSYS2文件夹下的「MinGW64 Terminal」,而不是默认的MSYS2 Terminal。不同环境的PATH是独立的,base环境里的clang是旧版本,只有MinGW64环境才会调用你安装的新llvm包里的clang。第三步:在正确环境里验证版本
打开MinGW64 Terminal后,先执行这个命令查看clang版本:clang --version如果还是显示旧版本,重新安装一次llvm包确保没有安装异常:
pacman -S mingw-w64-x86_64-llvm安装完成后再检查版本。
第四步:检查PATH环境变量优先级
如果还是没解决,可能是旧版本clang的路径在PATH里优先级更高。执行命令查看PATH:echo $PATH你要确保
/mingw64/bin在/usr/bin前面——因为/usr/bin里是MSYS2 base环境的旧clang,/mingw64/bin是你新装的llvm的路径。如果顺序反了,可以临时调整PATH:export PATH=/mingw64/bin:$PATH调整后再查clang版本,要是正常了,你可以把这条export命令加到
~/.bashrc或者~/.zshrc里(看你用的shell),以后每次打开终端都会自动生效。
按这几步操作下来,应该就能解决版本不更新的问题了,你试试看!
备注:内容来源于stack exchange,提问作者Gela

