llvm的安装

LLVM简介

LLVM项目是模块化和可重用的编译器和工具链技术的集合。尽管名称如此,LLVM与传统虚拟机几乎没有关系。名称“LLVM”本身不是首字母缩略词; 它是项目的全名。

LLVM开始作为一个研究项目,在伊利诺伊大学,与提供能够同时支持任意编程语言的静态和动态编译一个现代的,基于SSA编译战略目标。从那时起,LLVM已经发展成为一个由多个子项目组成的总体项目,其中许多子项目正在被各种商业和开源项目用于生产, 并被广泛用于学术研究。LLVM项目中的代码根据“UIUC”BSD样式许可证进行许可。LLVM包括很多子项目:LLVM官网

LLVM下载

  • 下载地址:https://github.com/llvm/llvm-project
  • 第一种下载,git clone https://github.com/llvm/llvm-project.git,这种是下载的最新的。而且下载下来的是文件夹形式
  • 第二种下载,打开https://github.com/llvm/llvm-project找到上面releases,点击,里面有很多旧版本。在这里插入图片描述
    点击releases后
    llvm的安装_第1张图片
    点击tar.gz下载,这个下载后要解压的。tar -xzvf 文件名

LLVM下载后的源码目录

下载后是在同一的llvm-project下,要调整目录

LLVM调整后的目录结构

首先clang-toos-extra重命名:extra,然后按照目录树移动目录到llvm下,libclc是opencl的,暂时不知道放哪,
llvm的安装_第2张图片

LLVM构建

构建过程中失败的项目建议删除吧,也可以自己解决。Llgo是go语言。lldb是调试器相当于gdb,不过不好装。Pstl自行看,没必要装。主要装clang+llvm+polly+lld+project

  • 和llvm同级目录,mkdir build
  • cd build
  • cmake …/llvm/
  • make -jn n是进程数
  • make install
  • 测试:make check-all

这里有一些常用的cmake参数:使用一般为-D后面跟参数,如-DCMAKE_INSTALL_PREFIX=…

  • CMAKE_C_COMPILER 指定c编译器
  • CMAKE_CXX_COMPILER 指定c++编译器
  • CMAKE_INSTALL_PREFIX 指定安装目录
  • LLVM_TARGETS_TO_BUILD 指定构建的目标及其架构
  • LLVM_ENABLE_PROJECTS 指定构建的项目(上述文件目录)
  • LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN (gcc编译器版本过低是可以使用,值为true,或false)
  • CMAKE_BUILD_TYPE 指定构建类型,默认Debug,还可以是Release

例如:

cmake ../llvm/ -DCMAKE_INSTALL_PREFIX=/home/huangzf/soft/install/debug-llvm/llvm-8.0.0/install  -DLLVM_TARGETS_TO_BUILD="X86;NVPTX;XCore" -DLLVM_OPTIMIZED_TABLEGEN=true -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=true  -DCURSES_LIBRARY=/home/huangzf/soft/install/ncurses/install/lib -DCURSES_INCLUDE_PATH=/home/huangzf/soft/install/ncurses/install/include/ncurses -DLIBXML2_LIBRARY=/home/huangzf/soft/install/libxm2/install/lib -DLIBXML2_INCLUDE_DIR=/home/huangzf/soft/install/libxm2/install/include

详见:https://llvm.org/docs/CMake.html

检查LLVM+clang是否安装成功

还记得刚刚安装时的参数吗?

-DCMAKE_INSTALL_PREFIX=/home/huangzf/soft/install/debug-llvm/llvm-8.0.0/install

这里是安装目录,安装完该文件夹如下图:

cd /home/huangzf/soft/install/debug-llvm/llvm-8.0.0/install
ls

在这里插入图片描述
这里bin目录就是安装好的软件命令文件夹,lib是库文件夹,include是头文件夹,

cd bin
ls

可以看到许多命令:
llvm的安装_第3张图片
检验是否安装成功:

./clang

输出如下就说明安装完成了,这是就可以来一个helloworld试试了。
在这里插入图片描述

设置clang前端驱动环境变量

如果不是指环境变量,那么每次都要用绝对路径:

#绝对路径使用clang
 /home/huangzf/soft/install/debug-llvm/llvm-8.0.0/install/bin/clang filename.c
#设置环境变量
 vim ~/.bashrc
 export PATH=/home/huangzf/soft/install/debug-llvm/llvm-8.0.0/install/bin:$PATH
 source ~/.bashrc

就可以在任意地方使用clang命令了。

你可能感兴趣的:(llvm学习)