操作系统:Ubuntu 16.04(不是虚拟机哦,在虚拟机上做过无数次尝试,均以失败告终)。
LLVM+Clang版本:3.6
Cmake版本:3.6
1、下载源码
首先安装svn,用来check out LLVM等源码;
aptitude install subversion
check out LLVM
check out的是LLVM项目的主要代码;
cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-porject/llvm/trunk llvm
check out Clang
Clang是llvm项目的C,C++,Objective C and Objective C++的前端。
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/truck clang
cd ../..
check out extra Clang tools(可选)
extra中包含的是利用Clang提供的借口开发的一些额外工具,我们可以在这些工具的基础上开发我们自己的工具。
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/truck extra
cd ../../../..
check out compler-RT
compiler-RT主要是为Clang和LLVM提供运行时库的支持。
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/truck compiler-rt
cd ../..
check out Test Suite Source Code(可选)
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-projects/test-suite/truck test-suit
2、编译安装
llvm支持cmake和autotools进行编译。不同编译方式对后续创建自定义的pass的方式就不同,例如如果使用cmake编译,写pass的时候就不需要创建makefile文件,而需要创建CMakeList.txt文件。
在编译之前,需要参看对系统的要求:
http://llvm.org/docs/GettingStarted.html#requirements
安装Cmake
直接使用指令安装的cmake的版本过低,因此需要自己安装cmake。 从http://www.cmake.org/download/下载cmake的码源,解压在安装。(我自己安装的是cmake3.6)
Cmake安装命令如下:
./bootstrap
make
make install
编译安装LLMVM Clang
llvm为了防止编译的中间结果分布在码源目录中,影响码源的结构。因此不支持目录内编译。需要在码源目录外创建额外的编译目录。
mkdir build
cd build
make -G "Unix Makefiles" ../llvm
make
make install
在make的时候可以选择make -jn指令来进行并行编译,加快编译速度,n表示你所拥有的处理器数量。
另外,需要强调的是:llvm+clang3.6以前的版本可使用./configure来进行编译,3.6以后的版本只能使用cmake来进行编译安装。,