C++ 在OSX上更新GCC
所以我是一个新的程序员,我刚刚在我的Macbook上安装了XCode以获得GCC。我认为Xcode是在OSX上获得GCC的唯一方法。现在,当我运行我的Hello World应用程序时,在C++中,G++提出它是4.0.1版本,但是当我从G i开始查找命令时,也看到了G++- 4.2。有没有办法使4.2成为默认版本而不是4.0.1,还有没有办法将gcc更新到最新版本4.4.0C++ 在OSX上更新GCC,c++,macos,gcc,compiler-construction,g++,C++,Macos,Gcc,Compiler Construction,G++,所以我是一个新的程序员,我刚刚在我的Macbook上安装了XCode以获得GCC。我认为Xcode是在OSX上获得GCC的唯一方法。现在,当我运行我的Hello World应用程序时,在C++中,G++提出它是4.0.1版本,但是当我从G i开始查找命令时,也看到了G++- 4.2。有没有办法使4.2成为默认版本而不是4.0.1,还有没有办法将gcc更新到最新版本4.4.0 编辑:好的,我安装了macports和gcc4.4,它在终端上显示为gcc-mp-4.4,我如何使用gcc_select将
编辑:好的,我安装了macports和gcc4.4,它在终端上显示为gcc-mp-4.4,我如何使用gcc_select将其设置为默认值,比如命令和内容。谢谢。如果您安装macports,您可以选择安装gcc,然后选择您的gcc版本
/opt/local/bin/port install gcc_select
要查看您的版本,请使用
port select --list gcc
要选择版本,请使用
sudo port select --set gcc gcc40
您可以在您的框中有多个GCC版本,以选择要使用的版本,并使用完整路径调用它,例如,在命令行上使用完整路径而不是
g++
usr/bin/g++(取决于您的GCC所在的位置)
对于编译项目,这取决于您使用什么系统,我不确定Xcode(我对默认atm很满意),但当您使用makefile时,可以设置GXX=/usr/bin/g++等等
编辑
现在有了一个xcrun
脚本,可以查询它来选择mac上构建工具的适当版本。除了manxcrun
之外,我还在谷歌上搜索了这个解释,它几乎概括了如何使用它。使用“gcc\u select-l”
>
gcc_选择-l
gcc40 mp-gcc44
>
gcc\u选择mp-gcc44
在
/usr/bin
中键入
sudo ln-s-fg++-4.2g++
sudo ln-s-f gcc-4.2 gcc
这应该可以做到。无论苹果在xcode中作为默认gcc提供什么(10.6上的4.2.1,之前的4.0.1)都经过了苹果公司的测试(和维护)以及在OS X上构建软件的“标准”。其他一切都不是,所以如果你想开发软件,请三思,或者成为gcc/OSX测试人员。我只是想说,使用软链接来完成这项任务是一个糟糕的、不好的、糟糕的想法 编写软件的关键之一是可复制性——您希望每次都能得到相同的结果。这些系统非常复杂,您需要减少所有不可见的错误源 软链接是一个无形的错误来源。这类事情你会在一个月内忘记,然后转移到另一台机器上,想知道为什么你会得到不同的结果——或者,你会尝试升级你的系统,你会得到奇怪的错误,因为它不希望那里有软链接 此外,这并不能保证有效——特别是,还不清楚您是否能够获得正确的系统包含文件,这些文件在gcc迭代之间肯定发生了变化 gcc_select是一种系统化的方法,它可以做同样的事情,并且可以预期效果,或者在最坏的情况下,您可以提交一份bug报告,并获得最终的修复或自己修复
不幸的是:-(gcc_select不影响XCode使用的编译器,所以如果您需要在XCode中工作,这不是一种方法(我是这样做的)。我仍然不知道这种方式可能是什么。我知道这是一个旧请求。但它可能对某些人仍然有用。对于当前版本的MacPorts,您可以使用port命令选择默认的gcc版本。 要列出gcc的可用版本,请使用: $sudo端口选择--列出gcc
Available versions for gcc:
gcc42
llvm-gcc42
mp-gcc46
none (active)
要将gcc设置为MacPorts版本,请执行以下操作:
$sudo端口选择--设置gcc mp-gcc46
以下使用的配方适用于我更新到gcc/g++4.7:
$ brew tap SynthiNet/synthinet
$ brew install gcc47
在帖子中找到它。您可以手动安装GCC 要么通过
sudo port install gcc46
或者,您可以从中的一个镜像下载源代码,例如
tar xzvf gcc-4.6.0.tar.gz
cd gcc-4.6.0
/配置
制造
如果你有多个版本,那么你可以选择一个
port select --list gcc
请记住,mac上的
port
称为macporthttps://www.macports.org/install.php
并将bin添加到您的路径中导出路径=$path:/opt/local/bin
我没有安装该端口,但我仍然选择了gcc。这是一个使用OS X 10.4的旧Xcode。如果您需要有关MacPorts的更多信息,请访问此处()它们的gcc端口高达4.5。我已经这样做了,但是当我启动python解释器时,我仍然看到gcc 4.0.1现在似乎命令是port select--list gcc
to list和port select--set gcc mp-gcc45
to set(用您的版本替换mp-gcc45)您还必须安装GCCSYSEL。为什么我得到这个警告和这个错误:<代码>警告:端口定义有两个多星期了,考虑通过运行“端口SelfPUDATE”来更新它们。错误:没有足够的权限写入Mac端口安装前缀。< /代码>……一年半之后,GCC 4.2仍然是L上的XCODE标准。John Zwinck:事实上,/usr/bin/gcc是llvm-gcc-4.2,整个编译器策略显然是llvm/clang。所以我不希望在gcc/OS X前端发生太多事情。XCode 4.6发行说明:“XCode 4.6是最后一个包含llvm-gcc编译器和GDB调试器的版本。”请确保先执行sudo-port-install-gcc\u选择。否则您将得到错误:“list”命令失败:指定的组“gcc”不存在。
您可以在目标或项目设置中设置编译器XCode使用的位置(我恐怕记不起确切位置)是编译器的路径。我需要将其更改为编译某些库。在/usr/bin/
文件夹中创建链接是一个很大的禁忌。当出现问题时,您将不得不重新安装整个操作系统