Clang vs. LLVMC - 有什么区别?

时间:2011-12-17 18:32:14

标签: c++ c llvm clang

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

3 个答案:

答案 0 :(得分:12)

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

您可以将-clang传递给llvmc,如果这是您要使用的内容,并且可能配置llvmc以便默认使用clang,但我不知道怎么做。

我建议您直接使用clangclang++,这可以用作gccg++的插入式替换。

答案 1 :(得分:7)

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

简而言之,你绝对应该使用“clang”而不是“llvmc”。

答案 2 :(得分:3)

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

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

另一方面,Clang是一个用于处理C语言系列的库的集合,它特别包含一个编译器(clang),它充当C,C ++,Objective-C和Objective的前端。 -C ++在LLVM库之上。

因此,在您的情况下,您将需要使用clangclang++分别编译C和C ++,并且不必担心LLVM在幕后使用以优化您的代码和处理适合您的架构的机器指令的生成。