首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有用于llvm的binutils?

是否有用于llvm的binutils?
EN

Stack Overflow用户
提问于 2011-03-09 05:31:51
回答 2查看 4.4K关注 0票数 7

LLVM编译器工具链中有一个与普通的gcc兼容的gcc。使用llvm- of的优点是它可以达到任意的目标,这意味着当你试图编译成一个随机的架构,比如说mips-apple-darwin时,正常的gcc会说没有这样的目标。然而,在mips处理器上,实际上,gcc将为Mac构建一个编译器。

然而,这里有一个问题:要构建到随机目标,您需要已经为该目标构建了binutils。因此,如果您有一个llvm可以编译到的目标,但是binutils不能,那么您就不能创建编译器,因为GNU Binutils不支持这个目标。

所以..。这里有一个问题:有没有与GNU Binutils兼容的等效的llvm-binutils,比如llvm- compatable?(意思是构建到任意目标,而不是列表中的目标。)

编辑:

所谓武断,我的意思是,我不是在运行llvm-gcc时选择目标,而是在编译llvm-gcc时选择目标。意思:如果我试图为mips-apple-darwin编译GCC,我会得到一个不支持的目标。但是如果我为mips-apple-darwin构建llvm- long,那么只要我有mips-apple-darwin-as和mips-apple-darwin-ld,它就可以工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-09 15:39:39

据我所知,LLVM不能针对任意目标进行编译。你必须有适合你的目标的所有的包含和定义,通常,llvm有一个后端来为你的目标生成代码。阅读“我能否将C或C++代码编译成独立于平台的LLVM位代码?”来自http://llvm.org/docs/FAQ.html

为了回答这个问题,llvm没有使用GNU binutils,llvm有自己的binutils来生成代码(称为LLVM核心项目)。反汇编程序和调试器是LLDB项目的一部分。

在LLVM带来一些独立性的地方,它是在语言层面上。你的项目可以用C/C++,Ada,Fortran等编写。llvm提供了在中间表示中转换代码的能力。该IR最终将生成代码。

票数 4
EN

Stack Overflow用户

发布于 2011-03-10 11:22:29

llvm--gcc不支持任意目标。对于任何给定的目标,都必须专门构建llvm-gcc。clang + LLVM可以。我正在尝试使用ellcc:http://ellcc.org来做这件事。我正在使用binutils进行组装和链接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5238582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档