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

MMa*_*Max 28 c c++ gcc osx-yosemite

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

我尝试编译我的程序,我有警告消息:

gcc: warning: couldn’t understand kern.osversion ‘14.0.0'
Run Code Online (Sandbox Code Playgroud)

我搜索谷歌,我发现https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407 我尝试应用补丁:

sudo patch -p1 < /usr/local/bin/00-darwin-10.10.patch
Run Code Online (Sandbox Code Playgroud)

在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:
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我试着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: 
Run Code Online (Sandbox Code Playgroud)

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

小智 31

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

xcode-select --install 
Run Code Online (Sandbox Code Playgroud)

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

  • 这个.这最终解决了我的问题. (2认同)

May*_*abi 20

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


Tom*_*ing 7

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

brew upgrade gcc
Run Code Online (Sandbox Code Playgroud)


Alf*_*oli 6

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

export CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc
Run Code Online (Sandbox Code Playgroud)

之后,像往常一样运行命令.


har*_*mic 3

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

理论上这个过程是

  • 下载 GCC 编译器的源 tarball
  • 将补丁应用到它上面
  • 编译海湾合作委员会
  • 安装编译好的GCC

但是,您不太可能能够执行此操作,因为您无法运行编译器来编译其自身的较新副本。第22条军规!

在谷歌上搜索“gcc yosemite”,我发现了许多可能的解决方案的参考,例如。在此输入链接描述。恐怕我不是 mac 专家,所以我无法判断这些解决方案的质量。