1 前言

环境

Win10主机+VMware15.5+Centos7.9

登录用户:root

从LLVM官网文档得知,编译clang12.0.0,需要依赖以下几个组件

Getting Started with the LLVM System — LLVM 12 documentation

2 准备工作

2.1 升级cmake

1、下载V3.20版本代码

https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz

2、卸载已有版本的cmake

yum remove cmake –y

3、安装openssl

yum install  -y openssl  openssl-devel

4、安装基本的编译工具

./configure --prefix=/usr/local/cmake

5、安装cmake

make && make install

6、创建链接或配置环境变量,查看版本

创建连接

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

配置环境变量

vim /etc/profile

export CMAKE_HOME=/usr/local/cmake

export PATH=$PATH:$CMAKE_HOME/bin

7、查看版本

cmake --version

2.2 升级Python

1、下载V3.9.0版本代码

https://cdn.npmmirror.com/binaries/python/3.9.0/Python-3.9.0.tgz

2、解压 
 

tar –xzf Python-3.9.0.tgz

cd Python-3.9.0
3、编译配置
./configure --prefix=/usr/local/python3
4、编译安装
make
make install

5、覆盖现有python,启动python时指向python3.9

备份旧python与pip
mv /usr/bin/python /usr/bin/python2_old
mv /usr/bin/pip /usr/bin/pip2_old  #第三部分的文件名可根据本机版本修改
6、修改软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

此方法到这里已经完成一半啦,可以使用命令 python -V, pip -V查看版本

7、收尾工作

由于修改了python的版本,会导致一些依赖于旧版本的程序出现错误,如yum,可进行如下配置:

vim /usr/bin/yum

文件第一行如下图:

 将python修改为旧的版本号,此处添加2.7:

 8、修改urlgrabber配置文件

vim /usr/libexec/urlgrabber-ext-down

 #!/usr/bin/python 改为 #!/usr/bin/python2.7

 2.3 zlib

查看zlib版本

yum info zlib

1.2.7,满足要求

2.4 make

查看make版本

make -v

3.82,满足要求

3 编译安装clang12.0.0

准备工作已经做完,现在开始主题

3.1 下载代码

https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0

编译clang12.0.0,需要从github上下载以下4个压缩包

从github下载以上文件速度比较慢,这里有笔者下载好的压缩包合集 

3.2 解压缩

xz -dk llvm-12.0.0.src.tar.xz
xz -dk clang-12.0.0.src.tar.xz
xz -dk compiler-rt-12.0.0.src.tar.xz
xz -dk clang-tools-extra-12.0.0.src.tar.xz
tar xvf llvm-12.0.0.src.tar
tar xvf clang-12.0.0.src.tar
tar xvf compiler-rt-12.0.0.src.tar
tar xvf clang-tools-extra-12.0.0.src.tar

​​​​​3.3 修改并移动文件路径

按下列名字,修改解压后的文件夹名字,然后将对应模块,移到指定目录下

mv clang llvm-12.0.0/tools/clang

mv compiler-rt llvm-12.0.0/projects/compiler-rt

mv extra llvm-12.0.0/tools/clang/tools/extra

3.4 源码编译

mkdir build
cd build
export CLANG_GCC=/usr/local

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DGCC_INSTALL_PREFIX=${CLANG_GCC} -DCMAKE_CXX_LINK_FLAGS="-L${CLANG_GCC}/lib64 -Wl,-rpath,${CLANG_GCC}/lib64" -DCMAKE_INSTALL_PREFIX=${CLANG_GCC}  -DLLVM_ENABLE_ASSERTIONS=On ../llvm-12.0.0

如果想要支持打包,可以手动打开CMakeCache.txt文件,根据需要设置一下下面这些参数

由于系统是CentOS,支持RPM安装包,所以这里我是把CPACK_BINARY_RPM设置为ON,其它参数都设置为OFF

make –j4

经过3、4个小时的等待

3.5 编译过程中的小插曲

编译过程中可能会报找不到

/clang-tools-extra/clangd/quality/ CompletionModelCodegen.py

clang-tools-extra-12.0.0.src.tar.xz重新解压一份

解压后命名clang-tools-extra,放置在与build相同路径下

然后接着编译

3.6 安装查询

make install

clang++ --version

4 感谢

编译过程中,参考了下边各位网友的文章,在此一一感谢。

  1. centos升级和安装cmake - 知乎
  2. CentOS7 下升级Python版本 - Ech2o - 博客园
  3. linux 安装clang,Centos7.6安装clang9_半路的疯子的博客-CSDN博客

4. CentOS 6.X安装GCC 9.1和LLVM/Clang 8.0_witton的博客-CSDN博客_centos6 编译安装gcc9

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐