LLVM的最新版本已经更新到了13.0.0版本,而我在之前的博客中给出的还是4.0版本的安装教程(https://www.cnblogs.com/jourluohua/p/9554995.html),两边的代码结构没有大的变化,但是API和调用接口等已经变化非常迅速。现在就最新的llvm源码安装进行说明。

大概分为以下的几个步骤:

  • 1. 依赖库的安装
  • 2. 相关文件下载
  • 3. 编译&安装
  • 4. 测试安装是否完成
  1. 依赖库的安装。(老生常谈,现实是,我也不知道需要什么安装依赖库,用的系统是Linux version 4.9.0-39-custom (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2) )),只有cmake遇到了版本过低的问题,我们这里不使用sudo权限,仅安装在自己目录下进行使用。
wget https://cmake.org/files/v3.18/cmake-3.18.2.tar.gz
tar -xzvf cmake-3.18.2.tar.gz
cd cmake-3.18.2
./bootstrap --prefix=/$dir_you_want_install
make
make install

并且在.bashrc进行对应的修改

export PATH=/mnt/ssd/wenze.lwz/local/bin:$PATH

 2. 下载相关的文件

一般来说,有git方式,或者源码下载方式两种,我这里采用的是源码下载方式

https://github.com/llvm/llvm-project/archive/main.zip
unzip llvm-project-main.zip

3. 添加编译脚本

为了节省输入的工作量,这里直接将相关的编译命令写成了build.sh,内容如下:

 1 #! /bin/bash
 2 BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 3 ENABLE_LLVM_TARGETS="X86;NVPTX"
 4 
 5 if [ ! -z "$1" ]
 6 then
 7     if [ $1 == clean ]
 8     then
 9         echo remove build folder...
10         rm -rf build
11         exit 0
12     else
13         if [ $1 == rebuild ]
14         then
15             rm -rf build
16         elif [ $1 == quicktest ]
17         then
18             ENABLE_LLVM_TARGETS="X86;NVPTX"
19         fi
20     fi
21 fi
22 if [ -d $BASEDIR/build ]
23 then
24     rm -rf build && mkdir build && cd build
25     cmake ../llvm -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD=${ENABLE_LLVM_TARGETS} \
26      -DLLVM_BUILD_TOOLS=true -DLLVM_INCLUDE_UTILS=true -DCMAKE_BUILD_TYPE=Release \
27     -DLLVM_ENABLE_RTTI=true  -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD=On  \
28     \
29     && make -j32
30     if [ $? -ne 0 ];then
31         echo "FAIL!"
32         exit 1
33     else
34         echo "SUCCESS!"
35     fi
36 fi
View Code

相关文章:

  • 2021-08-07
  • 2021-07-24
  • 2022-02-23
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2021-09-16
猜你喜欢
  • 2022-02-07
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-05-15
  • 2021-09-07
  • 2022-12-23
相关资源
相似解决方案