2012-02-11 27 views
1

我下面的LLVM的Hello通教程,在OSX獅子運行。我得到儘可能使在lib/Transforms/Hello目錄,創建位碼,然後在hello目錄這樣做:你好LLVM通過不加載

$ opt -load ../../../Debug/lib/LLVMHello.dylib -hello <hello.bc> /dev/null 
opt: <stdin>: Unknown instruction 

我試圖尋找這一點,但沒有發現任何東西。有什麼建議麼?

我不知道這重要的,但我用gcc 4.2.1。

感謝

回答

2

這意味着你的LLVM-GCC和LLVM不同步/不兼容的。有了錯誤LLVM即使是簡單的lli將失敗:

$ lli hello.bc 
lli: hello.bc: Unknown instruction 

您可以獲取相應的編譯器LLVM或使用基於LLVM的編譯器。對於前者,你可以得到使用--version的標籤,如:

$ llvm-gcc-4.2 --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. 
build 5658) (LLVM build 2335.15.00) 

意味着你可以從

http://llvm.org/svn/llvm-project/llvm/tags/Apple/llvmCore-2335.15 

得到相應的LLVM一旦你獲得了匹配LLVM一切都很好:

$ Debug/bin/lli hello.bc 
hello world 
$ Debug/bin/opt -load Debug/lib/LLVMHello.dylib -hello <hello.bc >/dev/null 
Hello: main 
+0

謝謝!我用鏗鏘聲,並擺脫了錯誤。 – omikun 2012-02-15 04:22:19