CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本

摘要:
尽管CentOS7已经问世多年,但仍有许多人选择安装CentOS6。CentOS6的一些依赖包和软件相对较旧,例如今天的主角gcc编译器。CentOS6的gcc版本是4.4,CentOS7的gcc是4.8。虽然CentOS6是gcc4.4的旧版本,但它也可以升级gcc以安装gcc4.8。我们现在不使用编译和安装方法。gcc安装非常耗时。我们使用CentOS的第三方库SCL。SCL可以安装新的软件包并与旧的软件包共存,而不覆盖原始的系统软件包,并且可以使用SCL命令进行切换。然而,存在仅支持64位的缺点。

CentOS 7虽然已经出了很多年了,但依然会有很多人选择安装CentOS 6,CentOS 6有些依赖包和软件都比较老旧,如今天的主角gcc编译器,CentOS 6的gcc版本为4.4,CentOS 7为4.8。gcc 4.8最主要的一个特性就是全面支持C++11,如果不清楚什么用的也没关系,简单说一些C++11标准的程序都需要gcc 4.8以上版本的gcc编译器编译,如MySQL 8.0版本(8.0.16以上版本是C++14标准,需gcc 5.3以上版本)。

CentOS 6虽然是gcc 4.4的老旧版本,但是也可以升级gcc来安装gcc 4.8,我们今天就不采用编译安装的方法了,gcc安装起来非常费时,我们采用CentOS的一个第三方库SCL(软件选集),SCL可以在不覆盖原系统软件包的情况下安装新的软件包与老软件包共存并且可以使用scl命令切换,不过也有个缺点就是只支持64位的。

确定当前gcc版本,执行命令:gcc --version

一般如果需要升级gcc至4.8或更高版本,建议直接采用安装SCL源之后安装devtoolset-6(devtoolset-6目前gcc版本为6.3),因为devtoolset-4及之前的版本都已经结束支持,只能通过其他方法安装

升级到gcc 6.3:

升级方法:

yum -y install centos-release-scl
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 6.3的话:

echo "source /opt/rh/devtoolset-6/enable" >>/etc/profile

这样退出shell重新打开就是新版的gcc了
以下其他版本同理,修改devtoolset版本号即可。

https://www.vpser.net/manage/centos-6-upgrade-gcc.html

免责声明:文章转载自《CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue | 基于vue的城市选择器和搜索城市对应的小区27 _ 条件变量sync.Cond (上)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

glibcxx升级

经过测试“GLIBCXX3.4.21 not find”这篇博文解决了我的问题。 以下是安装步骤: 一、首先查看当前gcc版本 strings /usr/lib/x86_64_linux-gun/libstdc++.so.6|grep GLIBCXX 二、升级安装GCC 1. 下载最新版本gcc gcc当前最新版本是5.2,下面是我找到的两个下载镜像,...

Sublime text3配置C编译环境

导读 本文介绍sublime text3的C开发环境搭建,包括MinGW的安装,gcc运行C语言,在sublime中运行以及在cmd中运行的方法。另外对于MinGW和gcc,还有sublime的build文件做了简单介绍。 0x01 关于gcc 安装编译器是后续工作的基础。在windows下使用gcc编译C语言,通过安装MinGW实现。 安装MinGW...

嵌入式Linux应用程序开发

1.Linux成员命令的使用。 切换超级用户:su 例:su - root 用户管理:useradd:添加用户账号 passwd:设置账号密码 例:useradd liu;passwd liu 显示进程:ps:显示当前用户运行进程列表 例:ps -ef 杀死进程:kill:输出特定的信号给特定的PID(进程号) 例:kill -9 7421(kill -9...

在Mac OSX EI Capitan下安装xgboost的吐血经历

官网上mac的安装并不复杂,但是实际操作下来有够吐血的,试了n多方法折腾到凌晨一点。。。。。。 在此详细记录一下以帮助其他踩坑的同学。 前情回顾: 为啥要安装gcc?为了xgboost能够多线程。。。好吧其实我本意并不在此,主要是最简单的单线程我都安装失败了!!就两步简单的操作为什么会失败呢我也不想的啊。。。。。。但是没有关于失败处理的博客,博客都是关于多...

Linux头文件和库文件添加环境变量与GCC编译器添加INCLUDE与LIB环境变量

  对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的 .bashrc或.bash_profile里增加下面的内容: (注意:等号前面不要加空格,否则可能出现 command not found) #在PATH中找到可执行文件程序的路径。 export PATH =$PATH:$HOME/bin #gcc找到头文件的...

缓冲区溢出保护机制——Linux

缓冲区溢出保护机制 Linux canary(栈保护) 栈溢出保护是一种缓冲区溢出攻击的缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。 当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,该cookie往往放置在ebp/rbp的正上方,当函数真正返回的时候会验证cookie信息是否合...