• 最新版本llvm-clang安装学习建议


    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

    配置bashrc

    export LLVM_HOME=$where_your_llvm_dir/llvm-project-main/build/bin
    export PATH=$LLVM_HOME:$PATH

    4. 测试

    使用clang –version 如果能得到正确结果,并且llvm-dis能得到正确结果,代表此处安装正确

    为了增加对Clang的AST的熟悉程度,想作为一个AST实现的源源变化的系列教程:

    1. Clang AST介绍 https://www.cnblogs.com/jourluohua/p/14524955.html
    2. Clang教程之实现源源变化 https://www.cnblogs.com/jourluohua/p/14514274.html
    3. Clang教程之实现源源变化(2) https://www.cnblogs.com/jourluohua/p/14517145.html
    4. Clang教程之实现源源变化(3) https://www.cnblogs.com/jourluohua/p/14520336.html
    5. Clang教程之实现源源变化(4)  https://www.cnblogs.com/jourluohua/p/14525428.html
  • 相关阅读:
    小程序开发学习记录(一)
    解决移动端touch事件与click冲突的问题
    解决node.js使用fs读取文件出错
    防抖和节流
    promise
    ES6新的特性有哪些?
    css盒模型
    CSS3有哪些新特性?
    ES6新增的数据类型Map和Set。
    js求两个数组的交集|并集|差集|去重
  • 原文地址:https://www.cnblogs.com/jourluohua/p/14509209.html
Copyright © 2020-2023  润新知