如何在CentOS 5.x上安装g ++ 4.7.2和c ++ 11?


8

我正在尝试安装最新的稳定版g++c++11。我的主持人仔细研究了一下,yum install并认为这是最新的,但事实并非如此,他们现在说这超出了他们的支持范围。

我到处都在寻找如何做的方法,但是我什么都做不了,或者我不知道建议的解决方案在说什么。

在CentOS 5.9上安装g++4.7.2 的最简单方法是什么?c++11


2
我看不到任何东西(在我非常缺乏经验的眼中)需要一些新的C ++功能。要轻松安装额外的软件(从源头上下载软件)绝非易事(如果您使用的是CentOS,则可能是企业应用程序)。无论如何,都不适合具有数小时 Linux经验的人。仔细重新考虑您的选择。
vonbrand

1
lambda为何如此坚持?也许最好的选择是安装最新的Fedora,其中gcc-4.7.2是由发行版维护的默认编译器?
vonbrand

2
我不是C ++专家,但是“按int的向量中的第N个int排序”需要对向量进行比较,而这并不是仅用最新的C ++填充的特殊要求。当然,这可能会更容易,但是如果从STL的第一个版本不能做起那么简单的事情,我将完全为之震惊。招募C ++专家吗?
vonbrand

您是否考虑过BOOST库?C ++ 11的很大一部分来自那里……
Aaron D. Marasco

c ++ 11不是编译器,而是标准。看我的答案。
PersianGulf

Answers:


9

从此问题的答案 “在CentOS [6.x]上安装gcc 4.7”,获得g++CentOS 5.x的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将使用新的gccg++等二进制文件:

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最新状态,则可能需要考虑从source进行构建gcc

同样,使用与您的系统上安装的版本g++和版本不同的程序进行编译libstdc++可能会导致各种Fun现象,而解决这个问题超出了此答案的范围。可能值得转向支持您正在做的事情的Linux发行版。


我已经更新了说明-您要yum安装的软件包为devtoolset-1.0,因为其中包含其他必需的开发工具;并且您将要更新$PATH变量,因为您是g++从命令行启动的。
Reed Kraft-Murphy,

创建新控制台时,gcc仍旧在旧版本上。如何使新版本成为默认版本?
英国电信2015年

1
要永久设置这一点,你必须添加export PATH..一行放在〜/ .profile或〜/ profile_bash或同等学历:superuser.com/questions/809250/...
BT

此后仍显示“ g ++(GCC)4.1.2” :-(
IllidanS4希望Monica退回

1

软件包管理器很棒,但是(可以理解)通常不会包含最新版本的软件。CentOS是一个特别专注于服务器的发行版,它比具有最新,最聪明的方法更倾向于稳定性(和广泛的测试)。这是您的解决方案:

变更发行版

其他发行版,例如Arch Linux,Sabayon Linux或Debian“ Sid”,都包括更快的最新版本。您可以考虑更改发行版。

自己建造

如果您对CentOS感到困惑,那么最好的选择是从source构建gcc。这意味着获取源代码,确保系统上已经存在依赖项(如果没有,我确定您可以从CentOS软件包管理器中获取它们),将源代码编译为二进制可执行文件,然后在您的系统上安装该可执行文件。系统

当然,这不是最简单的方法,但是您会在此过程中学到很多有关Unix的知识。请确保阅读几次文档以确保您掌握了所有内容,如果不清楚某些具体内容,请提出问题。

耐心一点

在某个时候,此版本(或更高版本)的gcc / g ++将进入程序包管理器。如果您等待(长达数月,我对CentOS的发布周期不太熟悉),最终将获得所需的东西。


1

嗯,我太新了,无法评论里德的回答。对我来说效果很好。我唯一要注意的事情(也许这是Reed的东西?)是我必须使用稍微不同的命令行进行安装:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(Reed的回答有--enablerepo=testing-devtools-6,但无效。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.