CentOS 7上升级/安装gcc

栏目: 服务器 · 编程工具 · 发布时间: 4年前

内容简介:CentOS 7官方源带的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。问题的解决办法主要有两种:手动编译安装(也可以从其他机器拷贝或者网上下载),或从源安装。大多数情况下本人都不推荐从源码编译,因为过程中常会出现各种依赖问题需要人工手动解决,费时(单核编译gcc至少一小时)且耗费精力,并且软件升级还要再来一次,相当的折腾。鉴于此下文介绍从源安装的方法。红帽其实已经编译好了高版本的gcc,但未更新到base和e

CentOS 7官方源带的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。

问题的解决办法主要有两种:手动编译安装(也可以从其他机器拷贝或者网上下载),或从源安装。大多数情况下本人都不推荐从源码编译,因为过程中常会出现各种依赖问题需要人工手动解决,费时(单核编译gcc至少一小时)且耗费精力,并且软件升级还要再来一次,相当的折腾。鉴于此下文介绍从源安装的方法。

红帽其实已经编译好了高版本的gcc,但未更新到base和epel这两个常用的源中,而是放在 scl 中。第一步便是安装 scl

yum install -y centos-release-scl

如果你之前用过 grouplist/install 等命令,应该知道gcc包含在 Development Tools 这个组中。那么 scl 中的gcc/g++软件包的前缀都是 devtoolset ,也就不难理解了。安装gcc 6版本的命令是:

yum install -y devtoolset-6-gcc devtoolset-6-gcc-c++

devtoolset-6 中的gcc版本为gcc 6,除此之外还有如下版本:

  • devtoolset-3: gcc 4.9
  • devtoolset-4: gcc 5
  • devtoolset-6: gcc 6
  • devtoolset-7: gcc 7
  • devtoolset-8: gcc 8

至于为什么没有devtoolset-5,我也不清楚,估计是包含在devtoolset-4中了吧。值得说明的是这些软件包可以同时安装,不会相互覆盖和冲突,也不会覆盖系统的版本。即可以在系统中同时安装gcc 6, gcc 7, gcc 8等多个版本。

因为不会覆盖系统默认的gcc,使用这些软件的方法有四种:

scl enable devtoolset-x bash
source /opt/rh/devtoolset-x/enable

推荐使用最后两种方式,例如启用gcc 6: source /opt/rh/devtoolset-6/enable ,然后输入 gcc -v 查看版本已经变成gcc 6.3.1。使用类似的命令可以随时在多个gcc版本中切换。如果希望长期使用高版本,可将此命令写入 .bashrc 等配置文件。

最后说一下,scl以及scl-rh源中的软件包都安装在/opt/rh/目录下,包含可执行文件、配置等。所以启用命令的路径是 /opt/rh/xxx/enable ,安装的服务重启命令则可能是 systemctl restart rh-xxx ,需要加rh或scl前缀以区别其他源的包。如果你用过remi/gitlab等源,其行为方式也是类似的。

参考

  1. https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/

以上所述就是小编给大家介绍的《CentOS 7上升级/安装gcc》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Distributed Algorithms

Distributed Algorithms

Nancy A. Lynch / Morgan Kaufmann / 1996-3-15 / USD 155.00

In "Distributed Algorithms", Nancy Lynch provides a blueprint for designing, implementing, and analyzing distributed algorithms. She directs her book at a wide audience, including students, programmer......一起来看看 《Distributed Algorithms》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具