我需要使用LLVM和Clang编译我所注册的编译器类。这不是关于类内容的问题,只是如何获得所需的软件安装。
我正在运行gcc版本4.6.3,并已下载,构build,testing并更新了我所认为的LLVM套件版本3.4(最新的svn版本)。 我做了一个简单的“hello world”应用程序,在LLVM入门页面上引用,但在线上
lli helloworld.bc
我得到错误“lli:helloworld.bc:无效的MODULE_CODE_GLOBALVARlogging”
我是一个完整的初学者这个东西,所以我不知道如果我给你所有你需要修复我的错误,请给我评论,如果你需要知道别的东西。 也请尽量给我尽可能详细的说明…我已经被扔进Ubuntu和Clang的世界没有任何的指示,不能忍受读另一个“解决scheme”,说:“阅读手册页”。
非常感谢你的帮助。 我只是想把这个设置好,所以我至less可以尝试作业。
编辑::这里是我在terminal运行的精确指令,其中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
然后
clang hello.c -o hello clang -03 -emit-llvm hello.c -c -o hello.bc lli hello.bc
最后一行,lli hello.bc,就是我上面的错误。
第一组指示花了一个时间完成。 有些东西肯定安装/build造/做了一些事情。 但是我不知道这里发生了什么事情。
所以这是我的大问题:
1)我的机器上安装了什么? 我应该安装Clang和LLVM,对吧?
2)我所有的教授都说:“我们会用clang,你需要LLVM 3.3或更高版本,我甚至在正确的轨道上吗?如果不是我应该怎么做LLVM 3.3?在LLVM网站上find导致我上面详述的问题。
当你键入:
clang -03 -emit-llvm hello.c -c -o hello.bc
你使用了系统的clang
可执行文件 ,它位于/usr/bin/clang
,而不是你刚刚建立的铛声。 这两个有不同的版本。 不过, lli
就是你刚刚建立起来的lli
Ubuntu并没有随之而来。 这意味着你已经生成了一个旧的LLVM版本的.bc文件,然后试图用一个更新的LLVM版本来运行它,因此是这个问题。
要验证这一点,您可以通过在控制台中键入which clang
来检查您正在使用which clang
。
解决这个问题的最简单的方法是输入./clang
(或其他不只是文件名的路径)而不是clang
,这会强制shell选择当前目录中的文件。