開篇語:
學習LLVM的過程是一個漫長而艱巨的過程,需要大量的時間和精力。不僅僅如此,開始的過程也不輕松。一個好的開始就是成功的一半。我結合了自己學習的過程,以及給别人推薦學習的過程,整理出了這個七天LLVM零基礎入門的系列部落格。主要的目标是讓沒有LLVM基礎的人,經過這一系列的學習,可以完成一些Pass的工作,并且可以成功的自己去自主學習,知道自己該怎麼學習,知道自己該去學些什麼。如果你有什麼建議,歡迎回報,歡迎探讨。
第一步,要對LLVM有一個初步的印象
第二步,看看LLVM到底是什麼
我們對LLVM有了一個初步的印象之後,我們還是不知道LLVM具體是什麼,那麼我們就來看一下。
LLVM source code
Clang source code
Compiler RT source code
這三項進行下載下傳,下載下傳後進行解壓,解壓後應該得到三個名字分别為llvm-3.2.src、clang-3.2.src、compiler-rt-3.2.src。這時候,需要對這三個檔案夾進行重命名,llvm-3.2.src重命名可以根據自己習慣,此處推薦重命名為llvm-3.2;clang-3.2.src重命名為clang,并且将此檔案夾整體放到llvm-3.2/tools下,包含clang這個頂層檔案夾;compiler-rt-3.2.src重命名為compiler-rt,并且将包含頂層檔案夾的整體檔案夾放到llvm-3.2/projects/下。
此時,打開一個終端,切換到llvm-3.2目錄下,依次輸入如下指令:
mkdir build
cd build
cmake ../
make
然後就可以在llvm-3.2/build/bin目錄下看到一大堆的可執行檔案。(此處不使用make install是友善在系統上使用多版本的llvm進行研究和修改。)
這個時候可以運作如下指令,來看看clang:
./clang -v
./clang -help
可以寫一個簡單的helloworld程式,使用clang進行編譯,使用方法和gcc相同:
./clang hello.c
./a.out
第三步:clang是什麼
我們剛才編譯出來了自己的LLVM,但是我們使用的确是clang。clang到底是什麼,我們接下來就來看看:
is a tool that automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Clang frontend as a library to parse C/C++ code.
這是官方對clang的簡要介紹。
到這個時候,應該可以熟練的使用clang去編譯自己的程式了。
-------------------------------------轉載請注明出處。--------------------------------------------------