我是一名新程序员,我刚刚在我的 Macbook 上安装了 XCode 来获取 GCC。我认为 Xcode 是在 OSX 上获取 GCC 的唯一方法。现在,当我在 C++ 中运行我的 Hello World 应用程序时,g++ 出现,说它是版本 4.0.1,但是当我查找以 g 开头的命令时,我也看到 g++-4.2。有没有办法让 4.2 成为默认版本而不是 4.0.1,还有没有办法将 gcc 更新到最新版本 4.4.0?

编辑:好的,所以我安装了 macports 并安装了 gcc4.4,它在终端上显示为 gcc-mp-4.4,如何使用 gcc_select 将其设置为默认值,例如命令和内容是什么。谢谢。

有帮助吗?

解决方案

如果你安装了macports,你可以安装gcc select,然后选择你的gcc版本。

/opt/local/bin/port install gcc_select

要查看您的版本

port select --list gcc

选择版本使用

sudo port select --set gcc gcc40

其他提示

我知道这是一个旧请求。但它可能仍然对某些人有用。使用当前版本的MacPorts,您可以使用port命令选择默认的gcc版本。 要列出可用的gcc版本,请使用:

  

$ sudo port select --list gcc

Available versions for gcc:
gcc42
llvm-gcc42
mp-gcc46
none (active)

将gcc设置为MacPorts版本:

  

$ sudo port select --set gcc mp-gcc46

我只是说,使用软链接来实现这一点是一个可怕的,不好的,可怕的想法。

编写软件的关键之一是可再现性 - 您希望每次都能获得相同的结果。这些系统非常复杂,您希望减少所有不可见的错误来源。

拥有软链接是一种无形的错误来源。这是你在一个月内会忘记的事情,然后转移到另一台机器,并想知道为什么你得到不同的结果 - 或者,你会尝试升级你的系统,你会得到奇怪的错误,因为它不是期待那里的软链接。

此外,这不能保证工作 - 特别是,你不清楚你会得到正确的系统包含文件,这些文件在gcc的迭代之间肯定会发生变化。

gcc_select是一种系统的方式,可以做同样的事情,可以预测,或者在最糟糕的情况下,你可以提交错误报告并获得最终的修复或自己修复。

不幸的是:-( gcc_select不会影响XCode使用哪个编译器,所以如果你需要在XCode(我这样做)工作,这不是你要走的路。我仍然不知道那是什么样的。

使用“gcc_select -l”

> gcc_select -L

gcc40 mp-gcc44

> GCC_SELECT MP-GCC44

使用 Homebrew 的以下配方让我更新为gcc / g ++ 4.7:

$ brew tap SynthiNet/synthinet
$ brew install gcc47

此处

/usr/bin类型

sudo ln -s -f g++-4.2 g++

sudo ln -s -f gcc-4.2 gcc

应该这样做。

您可以在包装盒上放置多个版本的GCC,以选择您要使用的GCC版本,例如使用完整路径调用GCC,例如而不是g++在命令行上使用完整路径/usr/bin/g++(取决于你的gcc所在的位置)。

对于编译项目,它取决于你使用什么系统,我不确定Xcode(我对默认atm感到满意)但是当你使用Makefile时你可以设置GXX = / usr / bin / g ++等等。

修改

现在可以查询xcrun脚本,以便在mac上选择适当版本的构建工具。除了man xcrun我用谷歌搜索了关于 xcode和命令行工具,几乎总结了如何使用它。

无论苹果公司作为xcode中的默认gcc(之前的4.0.1,4.0.1之前的4.0.1)都被苹果公司和<!>“标准<!>”进行了充分测试(并维护)。在OS X上构建软件。其他一切都不是,所以如果你想开发软件,请三思而后行,或者是gcc / OS X beta测试员。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top