【问题标题】:Why can't I check my version of GCC compiler on OS X为什么我不能在 OS X 上检查我的 GCC 编译器版本
【发布时间】:2013-12-08 21:09:52
【问题描述】:

我在终端输入了这个:

llvm-gcc --version

但我拥有的是这个:

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix`

我无法解释这组语句吗?还是我忘记在我的系统上启用某些东西?

【问题讨论】:

  • 您是否尝试过,例如“gcc --version”?
  • Mac OS X 根本不再使用 gcc。默认使用Clang 编译器。

标签: xcode macos gcc


【解决方案1】:

没有错。情况有点混乱。

Apple 不再通过 Xcode 分发 GCC。他们现在使用 Clang 作为 Mac OS X 上的默认(也是唯一!)编译器。ccgccclang(以及 C++ 变体 c++g++ 和 @ 987654328@) 现在都链接到在当前版本的 Xcode 下运行 clang。

根据--version 输出,您正在运行的clang 版本是500.2.79。

如果您想安装 GCC 作为 clang 的替代方案,您可以使用多种方法来安装,包括使用 Homebrew:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

【讨论】:

  • 告诉我们如何在仍在使用它的系统上确定 gcc 的版本。
  • 根据man gcc - 在苹果的 GCC 版本中,cc 和 gcc 实际上都是到 的符号链接llvm-gcc 编译器。同样,c++ 和 g++ 是指向 llvm-g++ 的链接。 请注意,Apple 的 GCC 包括对标准 GCC 的许多扩展(在下面标记为“APPLE ONLY”),并且并非所有通用 GCC 选项都在 Darwin 上可用或支持/ Mac OS X.,所以不管苹果的版本如何,它仍然被认为是 gcc
  • @l'L'l:当前版本的 Mac OS X 和开发人员工具并非如此——手册页已过时。 /usr/bin/cc/usr/bin/gccet al 处的二进制文件现在都是链接到 /usr/lib/libxcselect.dylib 的存根二进制文件,它会从您的活动 Xcode 安装中启动相应的二进制文件。
  • — 是的,gcc 已在 10.9 上被替换,尽管认为 gcc -v 不会返回 10.9 之前的 OS X 上的版本信息(如果存在 gcc)是完全错误的。 GCC = GNU Compiler Collection,根据他们的网站 GNU Compiler Collection 包括 C、C++、Objective-C、Fortran、Java、Ada 和 Go 的前端,以及这些语言的库(libstdc++、libgcj、.. .)。 GCC 最初是作为 GNU 操作系统的编译器编写的。
  • 在 OS X 10.9 之前,Apple 开发了自己的 gcc 版本(我的恰好是 4.2.1),其中包含标准 gcc 4.2.1 的扩展。这有意义吗?
猜你喜欢
  • 2023-03-28
  • 2020-09-11
  • 1970-01-01
  • 2019-08-21
  • 2013-11-08
  • 2012-03-31
  • 1970-01-01
  • 2011-02-20
相关资源
最近更新 更多