2013-08-28 109 views
7

我需要爲我參加的編譯器類使用LLVM和Clang。這不是關於類內容的問題,只是如何獲得所需的軟件安裝。安裝Clang/LLVM/Ubuntu

我正在運行gcc 4.6.3版本,並已下載,構建,測試並更新了我認爲是LLVM套件版本3.4(最新的svn版本)。我做了一個簡單的「Hello World」應用程序,在LLVM作爲參考入門頁面,但上線

lli helloworld.bc 

我得到的錯誤「LLI:helloworld.bc:無效MODULE_CODE_GLOBALVAR記錄」

我我是一個完整的初學者,所以我不知道我是否給了你所需的一切,以解決我的錯誤,如果你需要知道其他的東西,請給我評論。也請儘量給我儘可能詳細的說明......我已經被扔進了Ubuntu和Clang的世界,沒有任何指示,也不能忍受閱讀另一個「閱讀手冊頁」的「解決方案」。

非常感謝你的幫助。我只想讓這個設置,所以我至少可以嘗試作業。

編輯:: 這裏有精確的指示,我在終端運行,其中99%是直接取自LLVM網站:

cd myFolder 
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm 
cd myFolder 
cd llvm/tools 
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang 
cd myFolder 
cd llvm/projects 
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt 
cd myFolder 
mkdir build 
cd build 
../llvm/configure --enable-optimized CC=/usr/bin/clang CXX=/usr/bin/clang++ 
make 
make check-all 
make update 

THEN

clang hello.c -o hello 
clang -03 -emit-llvm hello.c -c -o hello.bc 
lli hello.bc 

這最後一行,lli hello.bc,是我得到上述錯誤的地方。

第一組指令需要WHILE才能完成。東西確實安裝/建立/做了一些事情。但我不知道這裏發生了什麼。

因此,這裏是我的大問題:

1)什麼是安裝在我的機器上?我應該安裝Clang和LLVM,對吧?

2)我所有的教授都說「我們會使用clang,你需要LLVM 3.3或更高版本,我是否正確?如果不是我應該怎麼做LLVM 3.3?只有詳細的指南我LLVM的網站上找到導致我上面詳述的問題

+0

你應該提供關於你如何構建LLVM的更多細節(它通常被打包在大多數Linux發行版中;你可以簡單地使用aptitude install clang llvm)。你也可以在LLVM郵件列表上提問。 –

+1

你能編輯這個問題來詳細說明你是如何生成「helloworld.bc」文件的嗎?此外,您可能對[此相關問題]感興趣(http://stackoverflow.com/questions/8717868/compile-assemble-and-disassemble-using-the-llvm-tool-chain)。 – Oak

回答

8

當你鍵入:

clang -03 -emit-llvm hello.c -c -o hello.bc 

您使用系統的clang可執行,這是/usr/bin/clang,而不是鐺,你剛剛建成,兩者有不同的版本,lli,但是,你剛剛構建的lli - Ubuntu不附帶它。這意味着您已經生成了一個帶有較舊LLVM版本的.bc文件,然後嘗試使用較新的LLVM版本來運行該文件,因此存在這個問題。

要驗證這一點,您可以通過在控制檯中鍵入which clang來檢查您正在使用的clang

解決此問題的最簡單方法是鍵入./clang(或其他任何不只是文件名的路徑)而不是clang,這會強制shell選擇當前目錄中的文件。