CentOS 7如何获取最新版clang-format?
解决CentOS 7上安装新版clang-format的问题
我之前在CentOS 7上也碰到过一模一样的问题——自带的clang-format版本老到根本不支持新的格式化规则,折腾了好一阵才找到省心的方案,给你整理几个靠谱的:
方案1:用LLVM官方YUM仓库安装(最推荐)
不用自己编译,直接通过软件源安装是最省事的:
- 先安装EPEL源作为依赖:
sudo yum install epel-release -y - 创建LLVM的仓库配置文件
/etc/yum.repos.d/llvm.repo,写入以下内容:[llvm-toolset] name=LLVM Toolset for CentOS 7 baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/developer/llvm-toolset/x86_64/ gpgkey=https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 gpgcheck=1 enabled=1 - 安装新版clang-format(这里以12版本为例,也可以选更高的比如13):
sudo yum install llvm-toolset-12-clang-format -y - 激活使用:
临时激活执行:
想永久生效的话,把下面内容加到scl enable llvm-toolset-12 bash~/.bashrc里:source scl_source enable llvm-toolset-12 - 验证版本:
clang-format --version
方案2:直接下载预编译二进制包(快速上手)
如果不想折腾仓库,直接用官方编译好的压缩包解压就能用:
- 下载对应CentOS 7的预编译包(以16.0.0版本为例):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-centos7.tar.xz - 解压到指定目录(比如
/opt):sudo tar -xvf clang+llvm-16.0.0-x86_64-linux-gnu-centos7.tar.xz -C /opt/ - 把二进制路径加到环境变量,编辑
~/.bashrc:echo 'export PATH=$PATH:/opt/clang+llvm-16.0.0-x86_64-linux-gnu-centos7/bin' >> ~/.bashrc - 生效并验证:
source ~/.bashrc clang-format --version
方案3:源码编译(不推荐,太繁琐)
如果上面的方法都走不通,才考虑源码编译——需要安装cmake、gcc、make等一堆依赖,编译过程耗时又容易出问题,优先前两个方案就好。
关于你的.clang-format文件
安装好新版工具后,把你的.clang-format放在项目根目录,执行以下命令就能格式化代码:
- 单个文件:
clang-format -i your_source_file.cpp - 批量格式化所有C++源文件和头文件:
find . -type f \( -name "*.cpp" -o -name "*.h" \) | xargs clang-format -i
内容的提问来源于stack exchange,提问作者S.K
相关产品推荐
相关产品推荐

