在OSX上更新GCC

Kar*_*mra 61 c++ compiler-construction macos gcc g++

所以我是一名新程序员,我刚刚在我的Macbook上安装了XCode来获得GCC.我认为Xcode是在OSX上获得GCC的唯一方法.现在当我运行我的Hello World应用程序时,在C++中,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进行默认设置,就像命令和内容一样.谢谢.

Mil*_*ous 62

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

/opt/local/bin/port install gcc_select
Run Code Online (Sandbox Code Playgroud)

要查看您的版本

port select --list gcc
Run Code Online (Sandbox Code Playgroud)

选择版本使用

sudo port select --set gcc gcc40
Run Code Online (Sandbox Code Playgroud)

  • 现在似乎命令是`port select --list gcc`列表和`port select --set gcc mp-gcc45`来设置(用你的版本替换mp-gcc45.)你仍然必须安装gcc_select. (20认同)

小智 36

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

$ sudo port select --list gcc

Available versions for gcc:
gcc42
llvm-gcc42
mp-gcc46
none (active)
Run Code Online (Sandbox Code Playgroud)

要将gcc设置为MacPorts版本:

$ sudo port select --set gcc mp-gcc46

  • 一定要先做`sudo port install gcc_select`.否则你会得到`错误:'list'命令失败:指定的组'gcc'不存在 (5认同)

Tom*_*rly 13

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

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

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

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

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

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