1. 程式人生 > >llvm+clang的安裝(使用cmake)

llvm+clang的安裝(使用cmake)

1. 下載碼源

首先先安裝svn,用來checkout llvm的碼源

aptitude install subversion

然後checkout llvm的碼源:

1.2 Checkout LLVM

checkout的是llvm專案的主要程式碼

cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

1.3 Checkout Clang

clang是llvm專案的 C, C++, Objective C and Objective C++ 前端

cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..

1.4 Checkout Compiler-RT

Compiler-RT主要是為Clang和LLVM提供執行時庫的支援

cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..

1.5 Checkout Test Suite Source Code(可選的)

cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suit

2. 編譯安裝

llvm支援cmake和autotools進行編譯。不同編譯方式對後續建立自定義的pass的方式就不同,例如如果使用cmake編譯,寫pass的時候就不需要建立makefile檔案,而需要建立CMakeList.txt檔案。
在編譯之前,需要參看對系統的要求:
http://llvm.org/docs/GettingStarted.html#requirements

2.1 安裝cmake

由於Debian軟體倉庫中的cmake的版本過低,因此需要自己安裝cmake。
http://www.cmake.org/download/下載cmake的碼源,解壓。

./configure
make
make install

2.2 編譯安裝

llvm為了防止編譯的中間結果分佈在碼源目錄中,影響碼源的結構。因此不支援目錄內編譯。需要在碼源目錄外建立額外的編譯目錄。

mkdir build
cd build
cmake -G "Unix Makefiles" ../llvm
make
make install

3. 常用工具簡介

這樣llvm就安裝完成了。下面是llvm的常用工具簡短介紹:
clang: C語言編譯器,類似於gcc
clang++: C++編譯器,類似於g++。clang++只是clang的一個別名。
clang-format:按照固定的規範格式化C/C++程式碼,非常智慧。文件請見:http://clang.llvm.org/docs/ClangFormat.html
clang-modernize:把按照C++98標準寫的程式碼,轉成C++11標準的。文件請見:http://clang.llvm.org/extra/ModernizerUsage.html
llvm-as:LLVM 彙編器
llvm-dis: LLVM 反彙編器
opt:LLVM 優化器
llc:LLVM 靜態編譯器
lli:LLVM的位元組碼執行器(某些平臺下支援JIT)
llvm-link:LLVM的位元組碼連結器
llvm-ar:LLVM的靜態庫打包器,類似unix的ar。
llvm-nm:類似於unix的nm
llvm-ranlib:為 llvm-ar 打包的檔案建立索引
llvm-prof:將 ‘llvmprof.out’ raw 資料格式化成人類可讀的報告
llvm-ld :帶有可裝載的執行時優化支援的通用目標聯結器
llvm-config:打印出配置時 LLVM 編譯選項、庫、等等
llvmc:一個通用的可定製的編譯器驅動
llvm-diff:比較兩個模組的結構
bugpoint:自動案例測試減速器
llvm-extract:從 LLVM 位元組程式碼檔案中解壓出一個函式
llvm-bcanalyzer:位元組程式碼分析器 (分析二進位制編碼本身,而不是它代表的程式)
FileCheck:靈活的檔案驗證器,廣泛的被測試工具利用
tblgen:目標描述閱讀器和生成器
lit:LLVM 整合測試器,用於執行測試

參考文獻