對於像我這樣的菜鳥來說,在linux中安裝安裝一個編譯器總要有人手把手才行。本來準備今天裝好llvm在
linux中的實驗環境,然後晚上看資料開始寫 一個簡單的編譯器練練手的,但是折騰到現在才搞定。我把能
google到的東西全google了,但是發現還是沒有手把手交如何搭環境的,博客裏有一篇 轉載的llvm2.3版本的
安裝指南,但是感覺不是很細,我用的是2.6版本的,跟着做了,但是還是出現了很多問題,之後靠着我一點點
看報錯信息然後 增改東西才搞定的。下面我把在ubuntu中搭建 llvm 2.6的步驟簡單說一下吧(我用的是
ubuntu 9.10,不過這個應該關係不大):
安裝llvm之前必備的編譯器要有gcc、bison、flex。
沒有的話用apt-get命令來獲取:
sudo apt-get install gcc
sudo apt-get install bison
sudo apt-get install flex
安裝完這三者之後,我們開始安裝llvm 2.6
1.
將llvm 2.6的源碼包解壓縮到指定目錄,我是解壓縮到
/mnt/LLVM/source-code/llvm-2.6
目錄下
然後 sudo ./config
ps.我之前沒有安裝gcc,結果會報錯說沒有安裝gcc
sudo
cd /mnt/LLVM/source-code/llvm-2.6
sudo ./configure
sudo make
(不安裝bison和flex這裏會報錯)
sudo make install
2.由於2.6版本里提供了 比較完善的llvm-gcc binaries包,所以一般來講不用自己再去安裝了,只要將包裏相應的內容拷貝到/usr/local中的相關文件夾內就可以了。拷貝時,可以使用sudo cp -r 源文件夾或文件路徑 目標文件夾或文件路徑。
這樣基本就ok了。可以簡單的測試一下llvm-gcc是否裝好。
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
printf( "hello, the world/n" );
cout << "this from C++" << endl;
return 0;
}
測試步驟:
1。llvm-g++ test.cc -emit-llvm -c -o test.bc
調用llvm-g++的編譯前端爲test.cc生成相應的LLVM bit code 文件。
我們也可以在調用llvm-g++的過程中添加上一些額外的選項,如
llvm-g++ --verbose test.cc -emit-llvm -c -o test.bc
加上--verbose
以確認llvm-g++前端在編譯過程中使用的是正確的頭文件
llvm-g++ -S test.cc --emit-llvm
加上 -S
選項,生成 LLVM的彙編格式文件。
2。基於步驟1生成的bit code文件,我們可以調用lli
來對其解釋執行
lli ./test.bc
3。基於步驟1生成的bit code文件,我們可以調用llvm-dis
來進行反彙編
llvm-dis < test.bc
4。基於步驟1生成的bit code文件,我們還可以調用llc
來爲其生成本地的彙編
文件
llc test.bc -o test.s
5。最後我們可以調用本地g++編譯器爲test.s生成本地機器碼並執行之。
g++ test.s -o test.native
./test.native
注:上述部分內容來自《
搭建LLVM實驗環境
》一文!