离久的小站

尝试LLVM

2018/09/04 Share

LLVM 简介

Low Level Virtual Machine ,简称 LLVM ,是一个模块化和可重用的编译器和工具链技术的集合。

LLVM 能提供一种代码编写良好的中间表示 IR,这意味着它可以作为多种语言的后端,这样就能够提供语言无关的优化同时还能够方便的针对多种 CPU 的代码生成。

Clang 是 LLVM 的子项目,是 C,C++ 和 Objective-C 编译器,目的是提供惊人的快速编译,比 GCC 快3倍,其中的 clang static analyzer 主要是进行语法分析,语义分析和生成中间代码,当然这个过程会对代码进行检查,出错的和需要警告的会标注出来。LLVM 核心库提供一个优化器,对流行的 CPU 做代码生成支持。lld 是 Clang / LLVM 的内置链接器,clang 必须调用链接器来产生可执行文件。

如何下载 LLVM

首先创建 LLVM 的源码路径及编译路径:

1
2
3
4
5
cd /opt
sudo mkdir llvm
sudo chown `whoami` llvm // 将 llvm 目录的所有者指定为当前用户
cd llvm
export LLVM_HOME=`pwd` // 设置当前目录(/opt/llvm)为 LLVM_HOME 目录

我们以一个 opt 文件夹为仓库,里面创建一个 llvm 的源代码仓库文件夹.

下载 LLVM release_60版本

1
2
3
4
git clone -b release_60 git@github.com:llvm-mirror/llvm.git llvm
git clone -b release_60 git@github.com:llvm-mirror/clang.git llvm/tools/clang
git clone -b release_60 git@github.com:llvm-mirror/clang-tools-extra.git llvm/tools/clang/tools/extra
git clone -b release_60 git@github.com:llvm-mirror/compiler-rt.git llvm/projects/compiler-rt

生成 XCode 工程(此处要用到 cmake ,请先安装 cmake )

1
2
mkdir llvm_build; cd llvm_build
cmake -G Xcode ../llvm -DCMAKE_BUILD_TYPE:STRING=MinSizeRel

打开 LLVM 工程 ,选择 Automatically Create Schemes(自动创建Schemes)

然后编译 Clang 和 libClang(可以随时终止编译,再次点击编译会从上次停止的地方继续进行)

这样一来……
现在开始了你的1个小时编译之旅 ,你看看你的 Mac 是不是在咆哮 ,激不激动 ,兴不兴奋 ~

编译后,我们可以得到

CATALOG