为什么不能将gcc编译器从4.2.1更改为更高版本?

时间:2018-12-08 08:26:48

标签: macos gcc

我尝试用最新版本的Mac OSX替换Mac Book Pro中随附的gcc 4.2.1编译器,但无法弄清楚我做错了什么:

从我的外壳刮下来的屏幕对我来说也没有意义:

Johans-MBP:bin johanlindfors $ gcc --version
配置为:--prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.14.sdk / usr / include / c ++ / 4.2.1 Apple LLVM版本10.0.0(clang-1000.11.45.5) 目标:x86_64-apple-darwin18.2.0 螺纹型号:posix InstalledDir:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Johans-MBP:bin johanlindfors $ 其中gcc
/ usr / local / bin / gcc
Johans-MBP:bin johanlindfors $ / usr / local / bin / gcc --version
gcc(Homebrew GCC 8.2.0)8.2.0 版权所有(C)2018自由软件基金会,Inc. 这是免费软件;请参阅复制条件的来源。没有 保证;甚至不是出于适销性或针对特定目的的适用性。

Johans-MBP:bin johanlindfors $

2 个答案:

答案 0 :(得分:0)

这是因为它实际上是Apple Clang冒充的GCC。

答案 1 :(得分:0)

系统gcc-4.2.1编译器是从gcc迁移到clang编译器的(很旧的)遗产。永远不要将其用于您自己的代码。编辑您的.profile.tcshrc,将较新的gcc目录添加到该路径之前。或节省大量时间和精力并使用MacPorts

不幸的是,Clang在gcc-4.2.1上建立了“绝对”兼容性:请参阅:clang -E -dM - < /dev/null | grep GNU

这不是一件坏事。一旦编译器获得关注,它将提供其自己的扩展,而不再跟踪其他扩展。许多扩展与Intel的<x86intrin.h>保持兼容。在扩展中提供太多差异并不是真正符合编译器的利益。

根据MacPorts,“稳定” gcc现在为8.2.0。稳定的MacPorts叮当声(与OS X产生冲突)显然是7.0.0 ...简短的故事-不要随意替换您认为可能可以正常工作的文件集。然后正确设置路径-IIRC,MacPorts将为您完成此操作。

我提供了最近的摘要:here