LLVM每日談之三 如何創建一個LLVM工程
閱讀了文檔《Creating an LLVM Project》(地址:Creating an LLVM Project)之後,自己照著做了一遍,記錄一下自己的過程。
實際做的時候跟文檔上還是有不同的。
1.首先我系統上的llvm3.1是之前已經下好,並且make過的。我打開llvm-3.1/projects目錄,看到下面有一個我之前放的compiler-rt目錄和另外一個本來這裡就有的sample。把sample這個文件夾copy到llvm3.1的同級目錄。修改文件夾名字為MyFirstLLVM。
2. 打開MyFirstLLVM/autoconf目錄,打開configure.ac.
3. AC_INIT後面的括弧裡面有三個中括弧,第一個中括弧要填的是這個項目的名字,第二個是這個項目的版本號,第三個是作者的聯繫郵箱,可改可不改。
4. 因為現在MyFirstLLVM已經和llvm-3.1在同級目錄了,所以修改接下來的LLVM_SRC_ROOT="../../llvm-3.1" LLVM_OBJ_ROOT="../../llvm-3.1/build"。llvm-3.1/build目錄是我編譯llvm-3.1的目錄。
5. 修改AC_CONFIG_AUX_DIR後面的內容為:(["../../llvm-3.1/autoconf"])。
6. 然後保存,在terminal中運行./AutoRegen.sh。這時候系統提示:Your autoconf was not detected as being 2.5x or 2.6x。
7. 查了下,是機器上沒裝autoconf的緣故,使用sudo apt-get install autoconf安裝之後,就可以正常運行了。
8. 然後在MyFirstLLVM目錄之下,建立一個build目錄,在build目錄下運行../configure。
9. 在build目錄下運行make,結束之後可以看到build目錄下有一個Release+Asserts目錄,打開這個目錄,可以看到lib和bin兩個目錄。
10. 在bin目錄之下運行./Sample得到一個輸出的結果5。
這樣就已經完成了一個LLVM工程的建立。這是建立LLVM工程的兩種方式之一,另外一種方式就是從零開始,自己一點一點建立,這樣相對來說會複雜點。
PS:
建立LLVM工程和編譯LLVM是兩回事,不要搞混了。
推薦閱讀:
※在編譯C語言代碼時,Clang跟gcc編譯器哪一個編譯出來的程序運行更快?特別是在浮點運算方面。
※Clang Static Analyzer - BodyFarm
※在Mac上編C/C++不用Xcode而藉助terminal調用gcc真的好嗎?
TAG:LLVM | Clang | ChrisLattner |
