centos g++升级

在Linux编译C++11标准代码需升级GCC。默认yum安装版本为4.4.7,可通过gcc --version查看。升级方式有两种,一是源码编译,需下载源码并准备依赖后自行编译;二是用scl临时切换版本,安装devtoolset。安装成功后可写测试代码验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++如果在linux编译对应的C++11标准代码需要升级相应版本的GCC,默认yum安装的版本是4.4.7 可以gcc --version观看自己的版本,如果想升级gcc可以分为两种方式:
第一种源码方式编译: wget 源码 然后 准备相应的依赖资源 然后自己编译。
第二种方式利用scl 不过当前方式只是临时切换Gcc版本 安装devtoolset:
操作为
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash 切换到对应的7这个版本 也就是Gcc7.几的版本
安装成功后写一段测试的代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
	std::vector<int> loVec;
	loVec.push_back(1);
	loVec.push_back(2);
	loVec.push_back(3);
	auto pfn = [&] (std::vector<int>::reference onePair) ->bool
	{
		cout<<"item = "<<onePair<<endl;
		return true;
	};
	std::for_each(loVec.begin(), loVec.end(), pfn);
	return 1;
}

保存文件C11.cpp
然后 g++ c11.cpp -o c11test --std=c++11 测试成功。
如果exit则退出当前的scl软件集,然后使用命令 scl enable devtoolset-7 bash 重新切换到高版本的gcc

### 升级 g++ 编译器 为了在 CentOS 7 上升级 `g++` 编译器,可以采用多种方法来获取更新版本的 GCCG++ 工具链。默认情况下,CentOS 7 提供的是较旧版本的 GCC(如 gcc version 4.8.5 20150623 (Red Hat 4.8.5-28)[^2])。以下是几种常见的解决方案: #### 使用 Software Collections (SCL) Software Collections 是 Red Hat 推荐的一种方式,允许在同一系统上并行安装多个版本的应用程序及其依赖项。 ```bash yum install centos-release-scl yum install devtoolset-9-gcc* scl enable devtoolset-9 bash ``` 这会激活 DevToolset-9 中的新版 GCC/G++ 并将其路径添加到环境变量中[^1]。 #### 安装通过 EPEL 或第三方仓库 对于希望获得更现代工具链而不使用 SCL 的用户来说,可以通过启用额外软件源来进行操作。EPEL 库本身并不总是提供最新版本的编译器,因此可能需要考虑其他社区维护的存储库。 ```bash rpm --import https://repo.ius.io/RPM-GPG-KEY-IUS-7 yum install https://repo.ius.io/ius-release-el7.rpm yum update yum install gcc7u-c++ ``` 请注意,这种方法可能会引入潜在的安全风险以及与其他官方包之间的兼容性问题,所以在生产环境中应谨慎评估后再决定是否采纳。 #### 手动编译安装新版本 如果上述两种方案都不能满足需求,则可以选择下载源码自行编译安装新的 GCC 版本。不过这种方式较为复杂且容易引发冲突,通常只推荐给有经验的技术人员尝试。 ```bash cd /usr/local/src/ wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz tar -xf gcc-11.2.0.tar.gz cd gcc-11.2.0 ./contrib/download_prerequisites mkdir build && cd $_ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib make -j$(nproc) sudo make install ``` 完成之后记得调整系统的 PATH 变量以便优先调用新版命令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值