2013-08-28 110 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选择当前目录中的文件。