Clang vs. LLVMC -- 有什么区别?

Clang vs. LLVMC -- what's the difference?

本文关键字:什么 区别 vs LLVMC Clang      更新时间:2023-10-16

llvmc.execlang.exe有什么区别?我用哪一个来编译C或c++代码?

llvmc是LLVM工具链中各种程序的前端,特别是llvm-*程序,即默认会尝试使用llvm-gccllvm-g++来编译C和c++文件。

你可以传递-clangllvmc,如果这是你想要使用的,它可能是可以配置llvmc,所以clang将默认使用,但我不知道如何做到这一点。

我建议直接使用clangclang++,它们可以作为gccg++的替代。

llvmc是一个实验性驱动程序,旨在支持多种不同的源语言。Clang和clang++一直是驱动(C/c++/Objective-C)编译器的首选方式。实际上,llvmc已经从主线中删除了。

总之,你绝对应该使用"clang"而不是"llvmc"。

LLVM最初代表低级虚拟机,现在主要用于以下两种:

  • 作为后端优化器/编译器
  • 作为JIT编译器

另一方面,Clang是处理C语言家族的库的集合,其中包含一个编译器(clang),它在LLVM库之上充当C, c++, Objective-C和objective - c++的前端。

因此,在您的情况下,您将希望分别使用clangclang++来编译C和c++,并且不用担心LLVM在幕后用于优化代码和处理适应您的体系结构的机器指令的生成。