IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3) -> 正文阅读

[系统运维]【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3)

CentOS 7升级GCC

正文开始@Assassin

我们在centos下默认的gcc版本是gcc4.8.5,版本比较低,默认是支持编译c++98的,若在C++程序中直接使用到c++11的特性,则会报错。
解决方案: 在编译时加上-std=c++11即可,如g++ test.cpp -o run -std=c++11

在bash下直接下载 :

yum install -y gcc gcc-c++

在这里插入图片描述
查看一下版本号:

gcc --version
g++ --version

在这里插入图片描述

基本执行步骤:

1. 切换用户:

输入以下命令行切换到root用户,此时需要输入你对应的root密码

su - root

如下图所示:
在这里插入图片描述

2. 安装centos-release-scl:

sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

在这里插入图片描述

sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm

在这里插入图片描述

3. 安装devtoolset:

这里需要注意一下,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推

sudo yum install devtoolset-9-gcc-c++

在这里插入图片描述

4. 激活对应的devtoolset:

按理来说你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

scl enable devtoolset-9 bash

此条命令行也同样适用

source /opt/rh/devtoolset-9/enable

5. 查看gcc版本号:

gcc --version

在这里插入图片描述

g++ --version

在这里插入图片描述

6. 一些issue:

注意:这条scl enable devtoolset-9 bash激活命令只对本次会话有效,重启会话或者切换用户后还是会变回原来的4.8.5版本,因为安装的devtoolset是在/opt/rh目录下的,如图所示:
在这里插入图片描述
每个版本的目录下面都有个enable文件:
在这里插入图片描述
如果需要启用某个版本,只需要执行命令行:

source ./enable

所以要想切换到某个版本,只需要执行:

source /opt/rh/devtoolset-*/enable

可以将对应版本的切换命令写个shell脚本放在配置了环境变量的目录下,需要时随时切换,或者开机自启。但是经过我自己的实践,不推荐上述方法。


最直截了当的方法是直接替换旧版本的gcc

旧版本gcc运行的在/usr/bin/gcc,所以将该目录下的gcc/g++替换为安装的新版本gcc软连接,省去了每次都要enable,简洁明了

依次执行以下命令:

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-9/root/bin/gcc /usr/bin/gcc

现在就算是永久性地启动指定版本的gcc,这种方式适用于长期使用该版本进行编译,切换bash依然有效

切换到Assassin用户查看一下:

[root@Ninghai ~]# su - Assassin
Last login: Fri Nov 26 22:20:43 CST 2021 from 182.118.236.53 on pts/1
[Assassin@Ninghai ~]$ g++ --version
g++ (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
Copyright (C) 2019 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.

在这里插入图片描述
到这里就ok了~~

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:18:21  更:2021-11-27 10:18:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:45:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码