1、LLVM所有版本下载路径
https://github.com/llvm/llvm-project/releases
2、这里安装版本13.0.1
# 下载
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/llvm-project-13.0.1.src.tar.xz
# 解压
tar vxf llvm-project-13.0.1.src.tar.xz
3、编译安装
cd llvm-project-13.0.1.src
mkdir build
cd build
开始编译
其中 -DLLVM_ENABLE_RTTI=ON 这个选项需要重点说明一下。由于我的目的是为了研究bpf技术,所以不可避免的会涉及到编译安装bpftrace这个工具。在编译bpftrace工程的时候如果没有打开 LLVM 的RTTI,会导致编译失败。而这个编译选项默认是关闭的,所以这里必须明确打开这个功能。
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" -G "Unix Makefiles" ../llvm
这个python版本要求至少3.6以上,不然会报如下错误
参照安装:
https://blog.csdn.net/liuxiaoming1109/article/details/128814108?spm=1001.2014.3001.5501
make编译
[root@localhost build]# make
[ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o
[ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
[ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o
[ 1%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangleNodes.cpp.o
[ 1%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/RustDemangle.cpp.o
[ 1%] Linking CXX static library ../libLLVMDemangle.a
[ 1%] Built target LLVMDemangle
我这个编译4个小时左右完成
make install
[root@localhost build]# make install
[ 1%] Built target LLVMDemangle
[ 4%] Built target LLVMSupport
[ 4%] Built target LLVMTableGen
[ 4%] Built target LLVMTableGenGlobalISel
.
.
.
-- Installing: /usr/local/lib/cmake/llvm/./LLVMProcessSources.cmake
-- Installing: /usr/local/lib/cmake/llvm/./TableGen.cmake
-- Installing: /usr/local/lib/cmake/llvm/./TensorFlowCompile.cmake
-- Installing: /usr/local/lib/cmake/llvm/./UseLibtool.cmake
-- Installing: /usr/local/lib/cmake/llvm/./VersionFromVCS.cmake
clang 13.0.1 安装成功
[root@localhost build]# clang -v
clang version 13.0.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10
Selected GCC installation: /opt/rh/devtoolset-10/root/usr/lib/gcc/x86_64-redhat-linux/10
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64