我对使用 LLVM 的 Clang 编译器感兴趣。 LLVM 声称是跨平台的,但尚不清楚可以针对哪些平台。我对此做了很多谷歌搜索,但似乎没有太多关于 LLVM 支持的平台的信息。我唯一发现的是"this" http://llvm.org/docs/GettingStarted.html#requirements这有点令人困惑。我不确定这是否意味着我可以使用 LLVM 为这些平台编译二进制文件,或者它是否只在这些平台(或两者)上运行。对 LLVM/Clang 编译器有更多了解的人能否告诉我可以使用 Clang 或任何其他 LLVM 前端来定位哪些平台?我想要具体信息(例如“它支持 Windows 32 位、Windows 64 位、Linux 32 位、Linux 64 位等)。谢谢!
EDIT:
好吧,我想我只是对 LLVM 到底是什么感到困惑。据我所知,LLVM 只是一个字节码解释器。由于 LLVM 是解释型的,因此 LLVM 二进制文件与可执行二进制文件相比要慢多少?那么如果性能很重要,LLVM 不是正确的选择吗?"Here" http://llvm.org/Features.html我找到了它支持的架构,但没有说明它支持哪些操作系统。如果我避免编写依赖于平台的代码,它是否可以在所有操作系统上运行?如果我能找到更多详细解释 LLVM 的文章,我会寻找更多。
已安装 llvm 的类型
llc -version
你会看到类似的东西
Registered Targets:
alpha - Alpha [experimental]
arm - ARM
bfin - Analog Devices Blackfin [experimental]
c - C backend
cellspu - STI CBEA Cell SPU [experimental]
cpp - C++ backend
mblaze - MBlaze
mips - Mips
mipsel - Mipsel
msp430 - MSP430 [experimental]
ppc32 - PowerPC 32
ppc64 - PowerPC 64
ptx32 - PTX (32-bit) [Experimental]
ptx64 - PTX (64-bit) [Experimental]
sparc - Sparc
sparcv9 - Sparc V9
systemz - SystemZ
thumb - Thumb
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
xcore - XCore
转至 github.com 并搜索 mbed_samples 以查看用于 ARM 交叉编译的 llvm 和 clang。在blinker03或04周围的某个地方是它的用武之地。LLVM对于任何平台都以相同的方式工作,llc步骤是你选择目标的地方,编译合并、优化等都是独立于平台的(例如你可以使用-m32)选择 int 大小)然后 llc 让您进入依赖于平台的汇编器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)