OS X Yosemite中的gcc 4.9.1 - gcc:警告:无法理解kern.osversion '14 .0.0'

时间:2014-10-21 11:59:14

标签: c++ c gcc osx-yosemite

我安装OS X Yosemite,现在我的gcc 4.9.1编译器存在很大问题。 我希望有人可以帮助我。

我尝试编译我的程序,并收到警告消息:

gcc: warning: couldn’t understand kern.osversion ‘14.0.0'

我在google上搜索,然后找到https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407 我尝试应用补丁:

sudo patch -p1 < /usr/local/bin/00-darwin-10.10.patch

在gcc文件夹中:/usr/local/bin/gcc 我收到了这条消息:

can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
|index dd45802..0db14d7 100644
|--- a/fixincludes/fixincl.x
|+++ b/fixincludes/fixincl.x
--------------------------
File to patch:

File to patch:我已经尝试过gcc,我收到了消息:

patching file gcc
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 15.
Hunk #3 succeeded at 1274 with fuzz 2 (offset -7908 lines).
Hunk #4 FAILED at 1319.
Hunk #5 FAILED at 1548.
Hunk #6 FAILED at 2671.
patch: **** Can't rename file gcc to gcc.orig : Permission denied

我尝试sudo并收到:

can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
|index dd45802..0db14d7 100644
|--- a/fixincludes/fixincl.x
|+++ b/fixincludes/fixincl.x
--------------------------
File to patch: 

我在错误的文件夹中? 有人可以帮帮我吗?

10 个答案:

答案 0 :(得分:31)

从源代码构建东西时遇到了类似的问题,这是因为我忘了在升级到Yosemite和xcode 6.1之后安装更新的命令行工具。在命令行中尝试:

xcode-select --install 

这将下载并安装命令行工具,可能会解决您的问题。

答案 1 :(得分:20)

如果在编译之前在环境中设置MACOSX_DEPLOYMENT_TARGET=10.9,则共享对象链接应该可以正常工作。

答案 2 :(得分:7)

如果您使用的是Homebrew,只需:

brew upgrade gcc

答案 3 :(得分:6)

这对我来说已经足够了,它不需要任何符号链接:

export CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc

之后,只需像往常一样运行命令。

答案 4 :(得分:4)

这解决了我的问题:我将gcc链接到/Applications//Xcode.app/Contents/Developer/usr/bin/gcc

cd /usr/local/bin
ln -s /Applications//Xcode.app/Contents/Developer/usr/bin/gcc gcc

答案 5 :(得分:3)

您尝试使用的补丁用于修补GCC的源代码,并且您尝试使用它来修补已编译的二进制文件。那不会起作用。

理论上,这个过程将是

  • 下载GCC编译器的源代码tarball
  • 将补丁应用于它
  • 编译GCC
  • 安装已编译的GCC

但是,您不太可能这样做,因为您无法运行编译器以编译自身的较新副本。捉住22!

在Google上搜索&#39; gcc yosemite&#39;我找到了许多可能的解决方案,例如。 enter link description here。我担心我不是mac专家所以我无法判断这些解决方案的质量。

答案 6 :(得分:2)

我在使用Xcode 6.1和GCC 5.0运行Yosemite(10.10.1)时,在GFORTRAN编译中也收到警告“无法理解kern.osversion`14.0.0'”。但是,编译器会生成正常运行的可执行代码,它似乎正常运行。也许你可以忽略这个警告?

答案 7 :(得分:0)

我通过链接解决了一个问题

else

答案 8 :(得分:0)

似乎想要一个当前版本的XCode命令行工具。当我第一次输入&#34; make&#34;安装Yosemite后,我收到一个警告和一个对话框,说我没有XCode命令行工具,并询问我是否要安装它们。我这样做了,一切正常。

但是,有一个用户没有收到此对话框,而是显示错误消息。 &#34; xcode-select --install&#34;没有用,所以好像它可能保留了过时的命令行工具和头文件。

MACOSX_DEPLOYMENT_TARGET = 10.9解决方案确实对他有用。然而,编译似乎要慢得多。

答案 9 :(得分:0)

我遇到了这个问题,安装了Xcode cli工具(xcode-select --install),但仍然有问题。我已经从优胜美地升级到Mojave,并卸载了较旧版本的编译器对我来说很有效:

brew uninstall apple-gcc42

希望这对某人有帮助!