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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM