Это означает, что ваши 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)
означает, что вы можете получить соответствующий LLVM из
http://llvm.org/svn/llvm-project/llvm/tags/Apple/llvmCore-2335.15
Как только вы получите соответствующий LLVM, всескважина:
$ Debug/bin/lli hello.bc
hello world
$ Debug/bin/opt -load Debug/lib/LLVMHello.dylib -hello <hello.bc >/dev/null
Hello: main