xcode - 为什么 Homebrew 报告 "couldn' t 理解 kern.osversion `14.0.0'”?

标签 xcode gcc command-line homebrew llvm-gcc

当我跑 brew -- config我得到

HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: bc071fb5448628aea8f066bbc0f37b0ecb4f11ee
Last commit: 16 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit haswell
OS X: 10.10.1-x86_64
Xcode: 6.1.1
CLT: 6.1.1.0.1.1416017670
couldn't understand kern.osversion `14.0.0'
GCC-4.2: build 5666
Clang: 6.0 build 600
X11: 2.7.7 => /opt/X11
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby

即使我的 Xcode(在 Yosemite 上)命令行工具似乎是最新的(确保我重新运行 xcode-select --install )并且在正确的位置
/Applications/Xcode.app/Contents/Developer 

根据 xcode-select -print-path ,我的(仅)gcc
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.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix

唯一的问题根据brew doctor
Unexpected static libraries:
    /usr/local/lib/libtclstub8.6.a
    /usr/local/lib/libtkstub8.6.a

但是我有一些可疑的东西,特别是 usr/bin/gcc-4.2 ,其中 --version
couldn't understand kern.osversion `14.0.0'
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
...

/usr/bin/i686-apple-darwin11-gcc-4.2.1 ,其中 --version也给
couldn't understand kern.osversion `14.0.0'
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)    
...

什么brew -- config的报告

couldn't understand kern.osversion `14.0.0'



意思?有什么我应该做的吗?

最佳答案

你前段时间在这台机器上升级过OS X吗?我猜它们来自较旧的安装。自 gcc默认情况下未安装,操作系统升级可能没有删除或替换 gcc和其他 XCode 命令行工具。你是否真的可以安全地删除它们,我不知道,但显而易见的是重命名它们(或将它们移动到备份子目录中),以便它们不在您的 PATH 之外。 .这样, Homebrew 软件将找不到它们并使用较新的编译器( clang )。很可能,您的系统(XCode、brew)将照常运行,因为它们将使用 clang在您的系统上找到。

您看到的错误,“无法理解 kern.osversion '14.0.0'”,很可能来自于 gcc是针对较旧的 OS X 内核版本编译的,当前版本 (Yosemite/14.0.0) 与该内核版本向后不兼容。

我不知道究竟安装了哪些编译器工具,但仅针对违规 gcc ,您可以执行以下操作:

mv /usr/bin/gcc-4.2 /usr/bin/gcc-4.2-oldOSX10.9

(假设它安装在 10.9 上;可能安装在早期版本上)。

有点不幸的是,XCode 的升级(或者更确切地说,一个全新的版本)不会检查旧版本的命令行工具并删除那些(*)。尽管可以理解,Apple 当然假定您不会使用普通 XCode 工具之外的任何东西;他们显然不会以这种方式支持 Homebrew 软件。

(*) 也许确实如此,但是如果您跳过一个或 2 个版本,它可能不会及时检查旧版本。

关于xcode - 为什么 Homebrew 报告 "couldn' t 理解 kern.osversion `14.0.0'”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068383/

相关文章:

python - 分发 python 命令行工具的最佳方式是什么?

command-line - .hgignore 似乎不起作用

iphone - 设置默认的 UIScrollView 比例

gcc - 在 openshift 上使用 pip 安装 lxml 失败

c++ - 编译 STL map 插入时出现问题

C++ 函数属性指示返回值的生命周期与参数相同

iOS - 何时加载 JSON 数据

ios - 如何跟踪不同时间段的数据 (Swift) - 计数器/习惯跟踪应用程序

objective-c - 异或或其他简单的文件混淆方法 ios objective c

json - 文件路径中的正斜杠而不是后斜杠