65

所以我是一个新程序员,我刚刚在我的 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 使其默认,比如命令和东西是什么。谢谢。

4

9 回答 9

63

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

/opt/local/bin/port install gcc_select

要查看您的版本,请使用

port select --list gcc

要选择版本,请使用

sudo port select --set gcc gcc40
于 2009-05-08T02:34:37.780 回答
37

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

$ sudo 端口选择 --list gcc

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

要将 gcc 设置为 MacPorts 版本:

$ sudo 端口选择 --set gcc mp-gcc46

于 2012-01-27T13:05:11.330 回答
13

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

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

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

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

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

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

于 2010-09-04T18:06:00.483 回答
3

以下使用Homebrew的配方帮助我更新到 gcc/g++ 4.7:

$ brew tap SynthiNet/synthinet
$ brew install gcc47

在此处的帖子上找到它。

于 2013-07-02T15:13:47.720 回答
2

使用“gcc_select -l”

> gcc_select -l

gcc40 mp-gcc44

> gcc_select mp-gcc44

于 2010-01-17T03:13:15.263 回答
1

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

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

编辑

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

于 2009-05-08T03:11:21.437 回答
0

/usr/bin类型

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

sudo ln -s -f gcc-4.2 gcc

那应该这样做。

于 2010-08-12T20:17:48.877 回答
0

您可以手动安装 GCC

要么通过

sudo port install gcc46

或者您从这里的一个镜像下载源代码,例如这里

tar xzvf gcc-4.6.0.tar.gz cd gcc-4.6.0 ./configure make

好吧,如果您有多个版本,那么您可以选择一个

port select --list gcc

记住port在 mac 上称为 macporthttps://www.macports.org/install.php并将 bin 添加到您的路径中export PATH=$PATH:/opt/local/bin

于 2019-10-14T12:54:45.383 回答
-8

无论 Apple 作为 xcode 中的默认 gcc(10.6 上的 4.2.1,之前的 4.0.1)提供的任何东西都经过了苹果公司的良好测试(和维护),并且是在 OS X 上构建软件的“标准”。其他一切都不是,因此,如果您想开发软件或成为 gcc/OS X beta 测试人员,请三思而后行。

于 2010-08-14T00:06:11.460 回答