首页 > 系统相关 >[c++/gcc] Centos 7.9升级 gcc 4.8.5 到 gcc11 [转]

[c++/gcc] Centos 7.9升级 gcc 4.8.5 到 gcc11 [转]

时间:2024-03-22 21:11:23浏览次数:28  
标签:bin 11 gcc Centos ++ 4.8 c++ usr

0 序

  • 本文背景:因在centos 7.9 server上安装nodejs21.7.1,编译nodejs时,依赖了gnu17/gcc11。

例如:遇到 Qt requires c++11 support-std=gnu++17
例如:编译器不支持c++17,就会提示:g++: error: unrecognized command line option ‘-std=c++17’
例如:编译器不支持c++17,就会提示:g++: error: unrecognized command line option ‘-std=gnu++17’

  • 然而,centos 7.9 默认的 gcc版本为 4.8.5。因此,需要升级到 gcc11。这种升级场景,在centos7.9中因为nodejs等重要组件,而变得较为频繁、且重要。故记录之。
  • 环境信息
  • centos : 7.9.2009
  • gcc 原版本 : 4.8.5
  • 目标升级版本 : 11

1 基于centos7.9 安装 gcc 4.8.5(默认版本)

  • 安装
yum -y update gcc
yum -y install gcc+ gcc-c++
  • 查看版本
# g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 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.

2 升级步骤 : gcc 4.8.5 -> gcc 11

2.1 升级

  • 安装centos-release-scl

如果出现权限问题使用超级用户(sudo)或者root进行安装

yum -y install centos-release-scl

安装devtoolset,如果想安装其他版本,例如 gcc7.* 改为 devtoolset-7-gcc* 即可

yum -y install devtoolset-11-gcc*

注:启用gcc11,devtoolset会安装在/opt/rh目录下

cd /opt/rh/devtoolset-11/ 
  • 每个版本下面都会有个enable文件,执行以下命令即可启用
source ./enable

如果想要切换到不同的版本时,只要执行命令即可

source /opt/rh/devtoolset-11/enable 
  • 直接替换相应软连接

该方法可以避免每次都要进行enable

mv /usr/bin/gcc /usr/bin/gcc.bak

ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g++.bak

ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++

mv /usr/bin/c++ /usr/bin/c++.bak

ln -s /opt/rh/devtoolset-11/root/bin/c++ /usr/bin/c++

mv /usr/bin/cpp /usr/bin/cpp.bak

ln -s /opt/rh/devtoolset-11/root/bin/cpp /usr/bin/cpp

mv /usr/bin/cc /usr/bin/cc.bak

ln -s /opt/rh/devtoolset-11/root/bin/cc /usr/bin/cc

2.2 查验:查看版本

# g++ --version
g++ (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 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.

# gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 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.

uploading-image-28412.png

X 参考文献

标签:bin,11,gcc,Centos,++,4.8,c++,usr
From: https://www.cnblogs.com/johnnyzen/p/18090430

相关文章

  • 通过VMware部署CentOS系统
    1.安装并打开VMWARE(使用管理员身份运行)2.在VMware中新建虚拟机3.典型/自定义,选择自定义安装4.虚拟机兼容性,默认下一步5.安装来源,选择稍后安装操作系统6.无需操作7.操作系统类型,选择linuxcentos7648.自定义虚拟机名称,和文件夹位置。D:\Centos79.虚拟机CPU,默认......
  • CentOS系统安装docker
    来自chatGPT在CentOS7.9系统上安装Docker,你可以遵循以下步骤:更新你的系统:首先,确保你的系统是最新的。这可以通过运行下面的命令来实现:sudoyumupdate安装必要的包:为了使得yum源支持https,你需要安装几个必要的包:sudoyuminstall-yyum-utilsdevice-mapper-persisten......
  • CentOS7.9 搭建本地Yum源仓库
    一、背景        在公司的生产环境中,服务器一般处于内网,而我们想在这样的服务器上安装软件时会出现无法访问Internet从而导致依赖安装失败的问题,今天我们通过配置离线YUM源仓库来解决类似问题。二、查看系统版本[root@superset~]#cat/etc/redhat-releaseCentOS......
  • CentOS学习笔记-离线环境下禁止yum命令从repo中下载软件
    CentOS学习笔记-离线环境下禁止yum命令从repo中下载软件CentOSLinuxyum离线环境下使用yuminstall安装rpm时,还是会试图联网从系统的repo中去寻找和下载依赖。使用下面的配置来禁止这个功能。使用yum-config-manager--disable*可以禁用所有的repo,使用yum-config-manager--ena......
  • CentOS学习笔记-设置yum保存软件包并指明保存位置
    CentOS学习笔记-设置yum保存软件包并指明保存位置CentOSLinuxyum在联网的环境中使用yum下载软件或者更新软件之后,希望把软件包保存下来,以便以后在离线机器上进行配置修改配置文件vi/etc/yum.confenterdescriptionhere这里要修改两地方,一是cachedir,表示要存放的位置,自己创......
  • CentOS 7 64位的安装过程
    以下CentOS764位的安装过程:一:下载centos71.打开浏览器在地址栏输入centos官网:centos.orgcentos官网主页二:在VMwear中安装centos7打开VM点击创建新的虚拟机点击自定义(高级)---->下一步---->下一步选择稍后安装操作系统---->下一步---->选择Linux,版本CentOS7......
  • Centos7交叉编译QT5.11.1+AArch64架构
    一、准备工作1、更新系统软件,目的是使用新版本的gcc等,还要保证磁盘空间足够1yumupdate2yuminstallgccgcc-c++3yuminstallmesa-libGL-develmesa-libGLU-develfreeglut-devel2、到linaro下载编译链工具安装aarch64(arm64)编译链工具。国产CPU,如飞腾、华为麒麟等......
  • CentOS学习笔记-离线下载软件包的方式及对比
    CentOS学习笔记-离线下载软件包的方式及对比CentOSLinuxrpm离线以离线部署KVM为例,研究对比下载获取离线软件包的方法和它们各自的特点。CentOS系统的版本是CentOSLinuxrelease7.9.2009(Core),目的是能够离线部署kvm。初始情况下,有两个虚拟机,它们的系统情况相同,都是空系统,没有......
  • centos7 编译 qemu 8.1.0
    targetx86_64-linux-user的编译参考链接问题解决qemu官方对centos7的编译支持到2021年4月,所以qemu8.1.0的linux-user在centos7上编译不过,官方是不管的。为了编译通过需要自己手动修改qemu的源码,只能修复一些宏参数的缺失,修改的基本思路是:如果在系统中能够找到对应的宏......
  • linux centos使用rz、sz命令上传下载文件
    一般情况下,我们会使用终端软件,如XShell、SecureCRT或FinalShell、JumpServer堡垒机来连接远程服务器后,使用rz命令上传本地文件到远程服务器,再解压发版上线。一、安装使用安装rz和sz命令yum-yinstalllrzsz使用rz上传文件,会跳出文件选择窗口,选择好文件,点击确认即可r......