![v2-eb193e1041f23a7a4c4c1f04bab60e05_1440w.jpg?source=172ae18b](http://img-01.proxy.5ce.com/view/image?&type=2&guid=e8d1f13c-ae2e-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-eb193e1041f23a7a4c4c1f04bab60e05_1440w.jpg?source=172ae18b)
一、介绍
官方定义:LLVM是一个模块化和可重用的编译器和工具链技术的集合
LLVM最初是在2000年由伊利诺伊大学香槟分校(UUIC)的学生Chris Lattner及其硕士顾问Vikram Adve创建的研究项目,并在2003年发布第一个正式版本,目的是提供一种基于SSA的现代编译策略,这种策略能够支持任何编程语言的静态和动态编译。
LLVM是当今最流行的开源编译器框架项目,你可以使用它编写自己的编译器。
LLVM的命名最早源自于底层虚拟机(Low Level Virtual Machine)的首字母缩写,由于这个项目的范围并不局限于创建一个虚拟机,这个缩写导致了广泛的疑惑。LLVM开始成长之后,成为众多编译工具及低端工具技术的统称,使得这个名字变得更不贴切,开发者因而决定放弃这个缩写的意涵,现今LLVM已单纯成为一个品牌,适用于LLVM下的所有项目
二、安装
快速安装
使用官方预编译二进制安装
以在Ubuntu 18.04安装LLVM 9.0.0为例
cd /usr/local
sudo wget http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
sudo tar xvf clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
sudo mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04 llvm-9.0.0
使用包管理器安装
# 在Debian/Ubuntu发行版本上
sudo apt install llvm clang
Debian/Ubuntu自带源安装LLVM版本较老,如要安装最新版本,请参考 https:// apt.llvm.org/
CentOS建议从源码安装
从源码编译安装
以LLVM 9.0.0为例
预置条件
编译LLVM需要事先在系统中安装符合以下条件的软件
- CMake >= 3.4.3
- GCC >= 5.1.0
- Python >= 2.7
- zlib >= 1.2.3.4
- GNU Make >= 3.79
获取并组织源码
wget http://releases.llvm.org/9.0.0/llvm-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/cfe-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/clang-tools-extra-9.0.0.src.tar.xz
tar xvf llvm-9.0.0.src.tar.xz
tar xvf cfe-9.0.0.src.tar.xz
tar xvf clang-tools-extra-9.0.0.src.tar.xz
mv llvm-9.0.0.src llvm-src
mv cfe-9.0.0.src llvm-src/tool/clang
mv clang-tools-extra-9.0.0.src llvm-src/tools/clang/tools/extra
编译并安装
cd llvm-src/build
cmake -G
/usr/local/llvm是安装目录, llvm-src是源码目录, llvm-src/build是编译目录
(因笔者才疏学浅、水平有限,文章中错谬之处在所难免,若蒙读者诸君不吝告知,将不胜感激)