1. 程式人生 > >llvm+clang編譯安裝

llvm+clang編譯安裝

最近一段時間在llvm+clang上做一些東西,所以順便將自己如何編譯安裝llvm+clang寫了篇文章發在這裡,希望能幫助剛接觸llvm+clang的童鞋少走一些彎路(我剛接觸的時候為了編譯安裝這個費了好大的力氣,全是眼淚這裡不多說了)。首先介紹一下,我用的ubuntu麒麟16.10的作業系統(不是虛擬機器,我在虛擬機器上編譯安裝了很多次都以失敗告終)。具體過程如下:

1. 下載碼源

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

       aptitude install subversion

然後checkout llvm的碼源:

1.2 Check out LLVM

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

cd where-you-want-llvm-to-live

svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

1.3 Check out Clang

clangllvm專案的 C, C++, Objective C and Objective C++ 前端

cd llvm/tools

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

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 ../../../..

1.5 Check out Compiler-RT

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

cd llvm/projects

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

cd ../..

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

2.1 安裝cmake

直接使用指令安裝的cmake的版本過低,因此需要自己安裝cmake。 
http://www.cmake.org/download/下載cmake的碼源,解壓在安裝。(我自己安裝的是cmake3.6) 

./bootstrap

make

make install

2.2 編譯安裝

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進行編譯。

---恢復內容結束---

---恢復內容結束---