- 前言
- 一、采用包管理器安装
- 二、采用官网的二进制包
- 三、编译安装llvm
- 总结
前言
整理一下关于llvm的安装步骤。首先保证有一些基本的安装包如 build-essential,所处环境为 Ubuntu 20.04.4 LTS。
一、采用包管理器安装在root模式下执行:
apt install llvm apt install clang二、采用官网的二进制包
在Github:https://github.com/llvm/llvm-project/releases 上下载版本LLVM14.0.0,其中选择 clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz,然后放在 /usr/local 目录下,然后解压即可。
tar xvf clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz mv clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04 llvm export PATH="$PATH:/usr/local/llvm/bin"三、编译安装llvm
前置工作:
apt install build-essential apt install zip apt install cmake apt install python3
然后下载 Github 中的 llvm 项目(https://github.com/llvm/llvm-project),下载 zip 格式到 /usr/local 目录下:
root@e7f35d7d1648:/usr/local# ls llvm-project-main.zip ... root@e7f35d7d1648:/usr/local# unzip llvm-project-main.zip root@e7f35d7d1648:/usr/local# ls llvm-project-main.zip llvm-project-main ... root@e7f35d7d1648:/usr/local# mkdir llvm root@e7f35d7d1648:/usr/local# cd llvm-project-main root@e7f35d7d1648:/usr/local/llvm-project-main# mkdir build root@e7f35d7d1648:/usr/local/llvm-project-main# cd build root@e7f35d7d1648:/usr/local/llvm-project-main/build# cmake -DLLVM_ENABLE_PROJECTS="clang;lldb" -DCMAKE_BUILD_TYPE="Debu g" -DCMAKE_INSTALL_PREFIX="/usr/local/llvm" ../llvm root@e7f35d7d1648:/usr/local/llvm-project-main/build# make
在Debug模式出现错误:
.... [ 68%] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o [ 68%] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1gen_reproducer_main.cpp.o [ 68%] Linking CXX executable ../../../../bin/clang collect2: fatal error: ld terminated with signal 9 [Killed] compilation terminated. make[2]: *** [tools/clang/tools/driver/CMakeFiles/clang.dir/build.make:333: bin/clang-15] Error 1 make[2]: *** Deleting file 'bin/clang-15' make[1]: *** [CMakeFiles/Makefile2:48665: tools/clang/tools/driver/CMakeFiles/clang.dir/all] Error 2 make: *** [Makefile:152: all] Error 2
多次尝试修改无果,好像是因为 swap 分区的问题,但是在Docker容器中不好修改,还有说是不要采用 make jN,但是自己也没有采用这种做法。所以采用Realse模式试试,需要先将cmake中的文件清空修改之前的 cake 命令如下:
root@e7f35d7d1648:/usr/local/llvm-project-main/build# rm -rf * root@e7f35d7d1648:/usr/local/llvm-project-main/build# cmake -DLLVM_ENABLE_PROJECTS="clang;lldb" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="/usr/local/llvm" ../llvm root@e7f35d7d1648:/usr/local/llvm-project-main/build# make ...大概4个小时左右吧,在自己电脑上 root@e7f35d7d1648:/usr/local/llvm-project-main/build# make install
成功!可执行文件保存在 /usr/local/llvm 中,其中内容和直接下载的官方二进制包中内容一样。
设置环境变量:
root@e7f35d7d1648:/usr/local/llvm-project-main/build# export PATH=$PATH:/usr/local/llvm/bin root@e7f35d7d1648:/usr/local/llvm-project-main/build# clang -v
补充:其实之前在编译Release中的源代码(llvm-14.0.0.src.tar.xz、clang-14.0.0.src.tar.xz 和 clang-tools-extra-14.0.0.src.tar.xz)时在 cmake 阶段会出现错误,不清楚所造成的原因。如下:
CMake Error at CMakeLists.txt:1256 (add_subdirectory): add_subdirectory given source "/usr/local/llvm/../third-party/benchmark" which is not an existing directory.总结
完。



