1. 程式人生 > >七天LLVM零基礎入門(Linux版本)------第一天

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

開篇語:

學習LLVM的過程是一個漫長而艱鉅的過程,需要大量的時間和精力。不僅僅如此,開始的過程也不輕鬆。一個好的開始就是成功的一半。我結合了自己學習的過程,以及給別人推薦學習的過程,整理出了這個七天LLVM零基礎入門的系列部落格。主要的目標是讓沒有LLVM基礎的人,經過這一系列的學習,可以完成一些Pass的工作,並且可以成功的自己去自主學習,知道自己該怎麼學習,知道自己該去學些什麼。如果你有什麼建議,歡迎反饋,歡迎探討。


第一步,要對LLVM有一個初步的印象
這裡,http://llvm.org/  是LLVM的官方網站,如果英語足夠好,又有足夠的耐心,從這裡可以找到你想要的一切。
第二步,看看LLVM到底是什麼
我們對LLVM有了一個初步的印象之後,我們還是不知道LLVM具體是什麼,那麼我們就來看一下。
從   
http://llvm.org/releases/download.html#3.2
   這裡,選擇Download LLVM 3.2(3.2是目前釋出版本的最新版本,在這個頁面也可以看到以前的歷史版本)下的
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到底是什麼,我們接下來就來看看:
Clang
is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles (e.g. about3x faster than GCC when compiling Objective-C code in a debug configuration), extremely usefulerror and warning messages and to provide a platform for building great source level tools. TheClang Static Analyzer
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的簡要介紹。
也可參加我之前的博文: http://blog.csdn.net/snsn1984/article/details/8232943   這裡簡要的介紹了clang的相關知識。

到這個時候,應該可以熟練的使用clang去編譯自己的程式了。

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