Gcc 4.2版本缺失

时间:2011-11-04 10:14:48

标签: macos gcc macports

在我的新macbook pro上使用osx lion和XCode 4.1我在使用gcc时遇到了一些问题。

/usr/bin我找不到gcc-4.2

我只有以下版本:

i686-apple-darwin11-llvm-gcc-4.2
llvm-gcc
llvm-gcc-4.2 

因此,当我尝试通过port select --set gcc gcc42选择gcc42时,它返回以下错误: Selecting 'gcc42' for 'gcc' failed: could not create new link "/opt/local/bin/gcc": target "/usr/bin/gcc-4.2" doesn't exist

但是port select gcc会返回以下版本:

apple-gcc42
gcc42
llvm-gcc42 (active)
mp-gcc44

如何解决此问题?

谢谢!

6 个答案:

答案 0 :(得分:7)

我可以通过符号链接设法解决Mountain Lion中的这个问题:

sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2

希望这有助于某人

答案 1 :(得分:6)

安装了Xcode 4.1应该有/usr/bin/gcc-4.2。但是,随着最近的Xcode 4.2更新,Apple终于删除了他们修改后的标准gcc-4.2。剩下的是llvm-gcc42(也符号链接到gcc)和clang,更新的非gcc C编译器。 Apple正在向clang过渡;第一步是使用混合llvm-gcc42。使用任何一种新编译器都存在一些问题。您应该利用这段时间来确定它们是否存在问题,如果有问题,请修复代码并向Apple报告错误。与此同时,如果您必须拥有旧的gcc-4.2,可以通过MacPorts构建一个类似于之前Apple修改过的版本:

port install apple-gcc42

但你会逆着潮流游泳。

答案 2 :(得分:5)

使用Xcode 4.3,您需要单独安装命令行工具。 XCode - >偏好 - >单击“下载”,单击“组件”按钮,然后单击“命令行工具”选项旁边的“安装”。

答案 3 :(得分:2)

我遇到了同样的问题。

我通过做一个符号链接来修复它。

像这样:

cd /usr/bin

然后:

sudo ln -s llvm-gcc-4.2 gcc-4.2

答案 4 :(得分:0)

您可以考虑从源code编译较新的GCC(例如4.6.2)。 Apple对GCC不再关心,但GCC自4.2以来取得了重大进展

您可能可以使用llvm-gcc42作为GCC编译器。

答案 5 :(得分:0)

我篡改了makefile的内脏,发现一个调用选项提供的参数太多了;将变量替换为我的机器上调用的函数的实际结果(删除多余的参数)并再次运行make它是否有效。