【Linux】CentOS7.6 升级 gcc/g++

news/2024/11/28 0:35:08/

CentOS 7.6 升级 gcc/g++的方法,不一定适用于其他linux系统

1.查看版本

g++ -v
gcc -v

当前查看版本,发现是4.8.5,这已经是2015年的旧版本了,对c++11的支持不是很完善,为了方便学习和编写新版本的代码,升级一下还是可以的

如果你的系统上没有gcc/g++,则尝试用下面的方法安装

yum install -y gcc gcc-c++

示例

[root@bt-7274:~]# yum install -y gcc gcc-c++
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-managerThis system is not registered with an entitlement server. You can use subscription-manager to register.Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile* centos-sclo-rh: ftp.sjtu.edu.cn* centos-sclo-sclo: ftp.sjtu.edu.cn
Package gcc-4.8.5-44.el7.x86_64 already installed and latest version
Package gcc-c++-4.8.5-44.el7.x86_64 already installed and latest version
Nothing to do

2.升级

yum list dev\*gcc

用这个命令查看可以安装的版本有哪些

image-20230131152231287

可以看到最新版本已经是11了,那我们就直接安装最新版本的吧

yum install devtoolset-11-gcc devtoolset-11-gcc-c++
Installed:devtoolset-11-gcc.x86_64 0:11.2.1-9.1.el7                                                     devtoolset-11-gcc-c++.x86_64 0:11.2.1-9.1.el7                                                    Dependency Installed:devtoolset-11-binutils.x86_64 0:2.36.1-1.el7.2                 devtoolset-11-libstdc++-devel.x86_64 0:11.2.1-9.1.el7                 devtoolset-11-runtime.x86_64 0:11.1-2.el7                Complete!

看到complete就代表安装over了

3.生效

现在要做的就是让新安装的版本生效

source /opt/rh/devtoolset-11/enable

image-20230131152404244

不过这样做,只能在当前bash生效,新建一个bash就会发现还是4.8.5。要做的就是吧这个语句写入bashrc的配置文件中,让每次新建bash的时候自动执行一次就OK了

要修改的是/etc/bashrc,强烈建议修改之前先备份一下

cp /etc/bashrc ~/bashrc.bak

随后执行下面俩命令

echo "source /opt/rh/devtoolset-11/enable" >> /etc/bashrc
source /etc/bashrc

现在就OK了,新建一个bash,再gcc -v,发现已经是新版本了

image-20230131152622618

4.关于man失效问题

升级了版本后,可能导致man手册失效。这是因为man的环境变量被修改了

# echo $MANPATH
/opt/rh/devtoolset-11/root/usr/share/man

如果你需要使用man命令,则还需要重新修改一下MANPATH环境变量

export MANPATH=/usr/share/man

解决参考 man什么都搜不了的解决方案


http://www.ppmy.cn/news/46281.html

相关文章

【TypeScript】TypeScript基础语法快速入门

快速入门 0、TypeScript简介 TypeScript是JavaScript的超集。它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。TS完全兼容JS,换言之,任何的J…

C++入门之auto关键字内联函数

文章目录 前言一、auto关键字1.auto简介2.auto的使用细则(1)auto与指针和引用结合起来使用(2)在同一行定义多个变量(3)auto不能推导的场景 3.基于范围的for循环(C11)(1)遍历&#xf…

Git——利用SSH密钥本地仓库上传远程GitHub库

文章目录 1、前言2、详细步骤2.1 创建密钥2.2 进入密钥文件并复制2.3 在GitHub上添加密钥2.4 回到本地仓库文件夹,连接GitHub并上传 3. 结语 1、前言 现在想要从本地设备将本地仓库上传到GitHub上需要用到SSH密钥,接下来讲解大致的步骤,本文默…

网络安全-kali配置ssh服务+敏感文件泄+dirsearch脚本

网络安全-kali配置ssh服务敏感文件泄dirsearch脚本 seccure shell 就是加密的telnet 远程用的 service ssh start 开启ssh服务metstat -tpan |gerp 22 监听这个端口是否开启 可以看到本地的22端口这个文件是/etc/ssh/sshd_config 输入 set number 找到第57行 把这个前面的#注…

VOC数据格式介绍

我们经常需要使用自己通过标注工具(如LabelImg、LabelMe等)生成的数据集或者一些开源数据集进行目标检测模型的训练,这些自定义数据集格式多样且不具有一致性,而目标检测的数据格式相比于其他任务又复杂很多,因此&…

ASIC-WORLD Verilog(6)运算符

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&…

C#程序设计——面向对象编程基础,设计一个Windows应用程序,模拟一个简单的银行账户管理系统。实现创建账户、取款、存款和查询余额的模拟操作。

一、实验目的 1、理解简单程序中的面向对象思想的应用 2、掌握C#的定义类和创建对象的方法 3、理解方法中参数的传递 二、实验内容 1、设计一个Windows应用程序,模拟一个简单的银行账户管理系统。实现创建账户、取款、存款和查询余额的模拟操…

索引失效了?看看这几个常见的原因!

索引是 MySQL 数据库中优化查询性能的重要工具,通过对查询条件和表数据的索引,MySQL可以快速定位数据,提高查询效率。但是,在实际的数据库开发和维护中,我们经常会遇到一些情况,导致索引失效,从…