最近一段時間在llvm+clang上作一些東西,因此順便將本身如何編譯安裝llvm+clang寫了篇文章發在這裏,但願能幫助剛接觸llvm+clang的童鞋少走一些彎路(我剛接觸的時候爲了編譯安裝這個費了好大的力氣,全是眼淚這裏很少說了)。首先介紹一下,我用的ubuntu麒麟16.10的操做系統(不是虛擬機,我在虛擬機上編譯安裝了不少次都以失敗了結)。具體過程以下:html
首先先安裝svn,用來check out llvm的碼源前端
aptitude install subversionbootstrap
而後checkout llvm的碼源:ubuntu
checkout的是llvm項目的主要代碼svn
cd where-you-want-llvm-to-live工具
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvmui
clang是llvm項目的 C, C++, Objective C and Objective C++ 前端spa
cd llvm/tools操作系統
svn co http://llvm.org/svn/llvm-project/cfe/trunk clanghtm
cd ../..
1.4 Check out extra Clang tools: (可選的)
Extra中包含的是利用clang提供的藉口開發的一些額外工具,咱們能夠在這些工具的基礎上開發咱們本身的工具。
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
Compiler-RT主要是爲Clang和LLVM提供運行時庫的支持
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suit
llvm支持cmake和autotools進行編譯。不一樣編譯方式對後續建立自定義的pass的方式就不一樣,例如若是使用cmake編譯,寫pass的時候就不須要建立makefile文件,而須要建立CMakeList.txt文件。
在編譯以前,須要參看對系統的要求:
http://llvm.org/docs/GettingStarted.html#requirements
直接使用指令安裝的cmake的版本太低,所以須要本身安裝cmake。
從http://www.cmake.org/download/下載cmake的碼源,解壓在安裝。(我本身安裝的是cmake3.6)
./bootstrap
make
make install
llvm爲了防止編譯的中間結果分佈在碼源目錄中,影響碼源的結構。所以不支持目錄內編譯。須要在碼源目錄外建立額外的編譯目錄。
mkdir build
cd build
cmake -G "Unix Makefiles" ../llvm
make
make install
在make的時候能夠選擇make -jn指令來進行並行編譯,加快編譯的速度。n表示你所擁有的處理器數。
另外,須要強調的是,llvm+clang 3.6之前的版本但是使用./configure來進行編譯,3.6之後的版本,只能使用cmake進行編譯。
---恢復內容結束---
---恢復內容結束---