当我检查 gcc/g++ 和 clang/clang++ 的版本时,我试图找出“--version”输出之间的区别,我理解它们应该只是相互链接。此外,我不清楚是否有某种方法可以更新我现在锁定在 Mac OSX 10.9 上的内容。这个问题有点太多了,但简而言之,我正在努力为玩 SDL 做准备。我最好在进行过程中发布控制台输出和评论。我认为我有一些误解需要解决;我确实看过关于堆栈溢出的类似页面,但没有一个讨论能完全回答我的问题
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
好吧,这是一个相当老的版本, 是否有安全的方法来更新所有内容,或者我的系统是否已锁定? 我记得在我的系统上安装了命令行工具和最新版本的 Xcode 6.2
Target: x86_64-apple-darwin13.4.0
Thread model: posix
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
4.2.1?我安装了 Xcode 6.2。我是要重建什么东西吗?
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
$ clang --version
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
$ clang++ --version
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
clang 打印输出没有告诉我关于 Xcode 版本的任何信息,所以我不确定这里是否存在差异。
简而言之,我是要更新或安装一些东西以便我拥有一组更新的编译器,还是我已经设置好了?上面的 gcc/g++ 和 clang/clang++ 信息之间的真正区别是什么?最后,我可以完全更新吗?如果可以,以什么方式更新,我可以这样做而不会产生任何负面后果吗?
如果问题过于笼统/模糊,请提前致歉。我只是想确保我对这些消息有正确的理解并知道如何进行。 谢谢。
最佳答案
在现代Mac系统上,
gcc
是clang
的别名,g++
是clang++的别名
.它们也是 Xcode(或 Xcode 命令行工具,如果您安装了它们)的组件。安装的 clang 版本取决于(但不相同)您安装的 Xcode 版本。
您看到的“4.2.1”是 C++ header 的版本。这只会让你感到困惑。忽略它。
如果您想要更新版本的编译器,则需要安装更新版本的 Xcode,为此,您需要安装更新版本的 macOS。
关于c++ - 在 Mac 10.9 Mavericks 上,clang 配置是否与 gcc 链接配置不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41436495/