在我的新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
如何解决此问题?
谢谢!
答案 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
它是否有效。