我正在尝试安装最新的稳定版本g++
和c++11
.我的主人完成了它,yum install
并认为这是最新的,但事实并非如此,他们现在说这超出了他们的支持水平。
我已经仔细研究过如何做到这一点,但我无法使任何工作发挥作用,或者我不知道建议的解决方案在说什么。
在 CentOS 上安装g++
4.7.2最简单的方法是什么c++11
5.9?
答案1
从这个答案“在 CentOS [6.x] 上安装 gcc 4.7”,对于 CentOS 5.x,获取g++
4.7 以及所需的工具和库的最简单方法是通过软件包devtools
:
cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo
yum --enablerepo=testing-devtools-6 install devtoolset-1.0
由于您是手动运行g++
(而不是通过make
),因此您需要更新$PATH
变量,以便您的 shell 将使用新的gcc
、g++
等二进制文件:
export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH
此时,你的g++
版本应该是4.7.0
$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
请注意,以gcc
这种方式安装和关联工具和库依赖于存储库维护者来保持其软件包最新。
如果您有兴趣保持gcc
最新状态,您可能需要考虑gcc
从源头构建。
此外,使用与系统上安装的版本不同的版本来编译程序可能会导致各种g++
问题libstdc++
乐趣,处理这个问题超出了这个答案的范围。迁移到支持您正在做的事情的 Linux 发行版可能是值得的。
答案2
包管理器很棒,但(可以理解)通常不会包含最新版本的软件。 CentOS 是一个特别关注服务器的发行版,它更注重稳定性(和广泛的测试),而不是拥有最新和最闪亮的产品。以下是您的解决方案:
更改发行版
其他发行版(例如 Arch Linux、Sabayon Linux 或 Debian“Sid”)包含最新版本的速度要快得多。您可以考虑更改发行版。
自己构建
如果你坚持使用 CentOS,你最好的选择是从源代码构建 gcc。这意味着获取源代码,确保您的系统上已经存在依赖项(如果没有,我确信您可以从 CentOS 包管理器获取它们),将源代码编译为二进制可执行文件,然后在您的系统上安装可执行文件。
这当然不是最简单的方法,但您将在此过程中学到很多有关 Unix 的知识。请务必阅读该文档几次,以确保您了解所有内容,如果具体内容不清楚,请提出问题。
要有耐心
在某些时候,这个版本(或更新版本)的 gcc/g++ 将进入包管理器。如果你等待(最多几个月,我对CentOS的发布周期不是很熟悉),你最终会得到你想要的。
答案3
嗯,我太新了,无法评论里德的答案。这对我来说效果很好。我唯一想注意的是(也许这是 Reed 的东西?)是我必须使用稍微不同的命令行进行安装:
yum --enablerepo=testing-devtools-5 install devtoolset-1.0
(里德的答案是--enablerepo=testing-devtools-6
,但这不起作用。)