LLVM 5.0 编译器是不是等同于 GCC 编译器?

Posted

技术标签:

【中文标题】LLVM 5.0 编译器是不是等同于 GCC 编译器?【英文标题】:Is the LLVM 5.0 compiler equivalent to the GCC compiler?LLVM 5.0 编译器是否等同于 GCC 编译器? 【发布时间】:2014-01-15 13:36:55 【问题描述】:

我必须在 ISO C++ 或 C++/CLI 中编写我的课程项目,虽然教授解释了如何在 Windows 中完成此任务,但很难知道如何在我的 Mac 上设置等效项。我目前正在运行 xCode 5.0.2,它似乎可以使用 LLVM 5.0 编译器毫无问题地编译示例应用程序。我读过 Apple 不再支持 GCC 编译器,所以我的问题是这两个编译器是否等效?在 GCC 编译器中运行的代码是否也可以在 LLVM 5.0 编译器中运行?

【问题讨论】:

各种编译器可以有不兼容的语言扩展,但如果你坚持标准,你不应该担心这个。 GCC 和 Clang 非常擅长遵守标准。 为了扩展 SirDarius 的评论,Clang 还实现了 GCC 的一些扩展,甚至可能足以编译 Linux 内核源代码(它使用了很多 GCC 扩展)?事实上,英特尔 C 编译器特意实现了许多 GCC 扩展,只是为了能够编译 Linux 内核。 【参考方案1】:

没有 LLVM 5.0。 LLVM 项目目前的版本为 3.4。 XCode 5 附带的 Apple LLVM/Clang 变体可能带有与 XCode 版本相对应的版本号,但这有点误导。

也就是说,是的,大多数适用于 GCC 4.2(Apple 发布的最后一个版本)的东西都适用于 LLVM/Clang。

另一方面,C++/CLI 是 Microsoft 专有的东西,无论如何你都无法在 Mac 上使用它,而且 GCC 和 Clang 都不支持它。

【讨论】:

【参考方案2】:

在 GCC 编译器中运行的代码是否也适用于 LLVM 5.0 编译器?

如果“运行”是指“编译”,那么是的,假设您的代码符合标准。

您的代码是否符合标准在一定程度上取决于您的教授的工作表现如何。

【讨论】:

【参考方案3】:

主要是。与 GCC 兼容是 Clang 的主要目标之一(请参阅 http://clang.llvm.org/features.html#gcccompat )。也就是说,如果你真的需要,你可以通过 MacPorts 安装 gcc,http://www.macports.org/。

【讨论】:

以上是关于LLVM 5.0 编译器是不是等同于 GCC 编译器?的主要内容,如果未能解决你的问题,请参考以下文章

linux下Clang和gcc的区别

LLVM - 工具

编译器:gcc, clang, llvm

mac下的gcc如何使用。。

GCC,LLVM,Clang编译器对比

转:GCC,LLVM,Clang编译器对比