在 OSX 上更新 GCC
-
10-07-2019 - |
题
我是一名新程序员,我刚刚在我的 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
/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测试员。