天天看點

七天LLVM零基礎入門(Linux版本)------第一天

開篇語:

學習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去編譯自己的程式了。

-------------------------------------轉載請注明出處。--------------------------------------------------