如何安装clang-15及以上版本(优先clang-16)以解决CMake编译版本不兼容问题
如何安装clang-15及以上版本(优先clang-16)以解决CMake编译版本不兼容问题
别急,我来帮你解决这个问题!你遇到的是因为系统默认apt源里的clang版本偏旧,下面给你几个靠谱的方法来安装clang-15及以上版本(优先推荐clang-16,功能更稳定):
方法一:添加LLVM官方源安装最新版本(适用于绝大多数Ubuntu/Debian系统)
这是最稳妥的方式,能获取到LLVM官方维护的最新稳定版:
- 首先导入LLVM的GPG密钥,确保源的安全性:
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - 根据你的Ubuntu/Debian版本添加对应的源,比如**Ubuntu 22.04(Jammy)**可以执行:
如果是其他版本,把命令里的echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" | sudo tee /etc/apt/sources.list.d/llvm.listjammy替换成你的系统代号(比如Ubuntu 20.04是focal,Debian 11是bullseye) - 更新apt软件源缓存:
sudo apt update - 安装clang-16及配套工具:
sudo apt install clang-16 llvm-16 - 设置clang-16为系统默认版本:
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 100 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 100
方法二:直接通过默认源安装(适用于Ubuntu 22.10及以上版本)
如果你的系统版本较新,默认apt源已经包含了clang-15/16,直接执行安装命令即可:
sudo apt install clang-16
同样可以用上面的update-alternatives命令设置默认版本。
验证安装成功
安装完成后,执行以下命令确认版本:
clang --version
如果输出显示clang version 16.x.x(或15.x.x),就说明安装成功了,此时再重新运行你的CMake命令应该就能正常编译了。
临时指定clang版本(无需修改系统默认)
如果你不想改变系统全局的clang版本,也可以在运行CMake时直接指定编译器:
cmake -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 ..
这样CMake会临时使用clang-16来编译你的项目。
备注:内容来源于stack exchange,提问作者Rajatt
相关产品推荐
相关产品推荐

