谢谢两位的回答。 另外,我之前看到一个关于llc的的-march=c选项的问题,说2.5之后的版本不再支持该选项(抱歉现在找不到这个url)。我学长用高于llc-2.5编译bc代码出错;而我用的ubuntu下的一个安装包得到的llc(应该是llc-2.9的修改版本)可以编译成功,但是生成的c代码有问题:和这个链接 http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-March/047989.html 中出现的问题类似(但原解答中提供的patch的网页无法打开)。 所以还想请教一下,再次感谢! 2012/10/1 ???f任 (Wei-Ren Chen) <chenwj@xxxxxxxxxxxxxx> > On Sun, Sep 30, 2012 at 11:06:21PM +0800, Hongxu Chen wrote: > > 刚接触llvm,有个问题非常令我困惑:各个版本之间的.bc文件之间好像都不兼容。 > > 比如用llvm-gcc2.5编译出的bitcode、clang2.8、clang2.9、clang3.0编译出的bitcode只 > > 能在对应的lli上执行或用对应的llc编译,否则会报错。然而生成的llvm反编译文件(.ll > > )似乎格式是差不多的(比如用clang2.8带选项-S -emit-llvm生成的hello.ll可以被 > > llvm-as2.9编译成hello.bc文件)。这究竟是怎么回事? > > LLVM 不保?C bitcode 向後兼容。你可以?⒖? [1] 中的一段??, > > LLVM 3.0 removes support for reading LLVM 2.8 and earlier files, and > LLVM 3.1 will eliminate support for reading LLVM 2.9 files. Going > forward, we aim for all future versions of LLVM to read bitcode files > and .ll files produced by LLVM 3.0. > > ?f任 > > [1] http://llvm.org/releases/3.0/docs/ReleaseNotes.html > > -- > Wei-Ren Chen (???f任) > Computer Systems Lab, Institute of Information Science, > Academia Sinica, Taiwan (R.O.C.) > Tel:886-2-2788-3799 #1667 > Homepage: http://people.cs.nctu.edu.tw/~chenwj > > -- M.E. Candidate, School of Software,Shanghai Jiao Tong University Cell:+86-15021948105 Gtalk: leftcopy.chx@xxxxxxxxx Address:5405,Software Building, 800 Dongchuan Road Shanghai 200240, China