Centos7下升级gcc/g++版本(简单 + 避坑)

news2024/9/21 16:34:28

在 Centos7 下,使用 yum 安装高版本的 gcc/g++ 最简单:

yum -y install centos-release-scl
yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
  • 需要安装哪个个版本的gcc/g++,就把数字替换成对应的版本号。例如上面代码中,我们下载了 gcc11 和 g++11
  • gcc版本与C++标准的对应关系可以参考gcc官网 >链接

使用 scl enable devtoolset-11 bash 启用 devtoolset-11 软件集和,此时使用 g++ --version 以及 gcc --version 命令就会发现我们的 gcc g++ 已经完成了升级。

image-20240109161021405

但是scl命令的作用只是暂时的,如果要长久生效,我们就需要写入到配置文件中:

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

(注意:具体数字根据你下载的版本来)

写到这里我们的升级工作就完成了,但我写这篇博客就是想吐槽一下网络上常见的错误:试图通过替换 gcc/g++ 来实现永久生效。

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
 
sudo ln -s /opt/rh/devtoolset-10/root/bin/gcc /usr/bin/gcc
 
mv /usr/bin/g++ /usr/bin/g++-4.8.5
 
sudo ln -s /opt/rh/devtoolset-10/root/bin/g++ /usr/bin/g++

试想一下,你的编译器确实是新版的,但是你的头文件和库文件不还都是原先老版本的吗,一些新版的C++语法自然就不会支持。我当初就被这种写法坑了,编译 redis-plus-plus 时就提示提示 c++17 语法不能识别。

image-20240109161857075

执行 /opt/rh/devtoolset-11 路径下的 eable 文件才是正确的写法,它不仅设置了编译器可执行文件的 PATH 环境变量,同样会设置标准库头文件、库文件等环境变量,具体完成的操作我们可以通过 vim /opt/rh/devtoolset-11/enable 查看

在这里插入图片描述在这里插入图片描述

  1. 向 PATH 环境变量中添加工具集中的编译器、调试器等工具的路径。
  2. 设置 LD_LIBRARY_PATH 环境变量,以便在运行程序时正确加载工具集中的库文件。
  3. 设置 MANPATH 环境变量,以便在使用 man 命令查看文档时能够正确显示工具集的文档。
  4. 设置 INFOPATH 环境变量,以便在使用 info 命令查看文档时能够正确显示工具集的文档。
  5. 置 PKG_CONFIG_PATH 环境变量,以便在编译过程中使用 pkg-config 工具时能够正确找到工具集中的库文件。
  6. 如果在执行命令之前已经设置了 CXX 或 CC 环境变量,则将这些变量设置为与工具集中对应的编译器路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1381581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Velodyne 64E S3 硬件连接和 velodyne_driver ROS驱动安装

在当前的研究工作中,点云语义分割技术的应用显得尤为重要,而我选择了rangenet作为分割算法的核心。尽管课题组拥有一款80线激光雷达,但是在实际测试中,我们发现该算法模型在我们的数据集上的泛化表现并不理想。为了改善这一情况&a…

ubuntu22.04虚拟机安装教程

ubuntu22.04虚拟机安装教程 1.下载镜像: https://ubuntu.com/ 打开后点击Download: 或者用清华镜像源下载:滑到最底下,点击ubuntu-releases 选中这个版本ubuntu-22.04.3-desktop-amd64点击下载 2.虚拟机加载:打开VM&#xff0…

移动通信系统关键技术多址接入OFDM学习(7)

1.OFDM是一种多载波传输方案,可以将高速串行传输转换为低速并行传输,增加符号持续时间,抗多径干扰能力强。 串行和并行有着不同的比特持续时间,同时拥有相同的数据速率。因此,虽然OFDM将串行信号转换为并行信号&#…

Java项目:06 Springboot的进销存管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 介绍 进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行(从接获订单合同开 始,进入物料采购、入…

QT上位机开发(crc校验)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 crc校验是数据校验中一种常用的方法。我们在上位机和下位机沟通的时候,有的时候需要检验数据在传输的时候有,没有发生数据被…

uniapp-uniCloud的基本使用(编写云存储的地区级联选择器)

目录 新建项目,创建 uniCloud 服务空间并关联 1. 新建项目 2. 创建 uniCloud 服务空间并关联 manifest.json内未配置Appld,请重新获取后再 云数据库的使用 城市选择和云数据库 介绍 云端数据 DB Schema概述 新建项目,创建 uniCloud 服务空间并关…

Web前端 ---- 【Vue3】vue3中的组件传值(props、自定义事件、全局事件总线)

目录 前言 props 自定义事件 全局事件总线 安装第三方库mitt 封装event-bus.js文件 使用全局事件总线 清除全局事件绑定 前言 本文介绍在vue3中的组件传值,props、自定义事件以及全局事件总线。相较于vue2中,略有变化。关于vue2中的组件传值看这篇…

坑记(HttpInputMessage)

一、背景知识 public interface HttpInputMessage extends HttpMessage Represents an HTTP input message, consisting of headers and a readable body.Typically implemented by an HTTP request on the server-side, or a response on the client-side.Since: 3.0 Author:…

【python】08.面向对象编程基础

面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。 "把一组数据结构和处理它们的方法组成对象(object&#…

【Minio】常见问题解决思路

检查存储服务器对应的端口与应用服务器是否能够互通,通过ping|telnet命令检查、查看防火墙端口是否开放,检查防火墙端口linux系统和windows系统各有不同。检查电脑上的杀毒软件是否限制了网络端口和文件权限问题。检查minio配置信息是否正确,…

linux 如何创建文件

我们在写一些教程的时候,经常会需要创建一些用于演示的文档,这些文档往往需要填充一些不特定的内容。那么如何快速的创建演示用的文档呢? docfaker.py docfaker.py是一个py脚本,用于创建一个简单的txt文档,docfaker.…

备战抖音商城好物年货节,品牌焕发新商机

农历春节前的最后一个月,打工人们逐渐将置办年货提上日程。忙碌了一年的辛苦与疲惫,总能在喜气洋洋买年货的过程中,被一扫而空。这是“年味”的开始,也是公司高管郭广宇面临的一场关键战役。 郭广宇今年35岁,是三只松鼠…

《SRE Google 运维解密》笔记

指导思想 介绍 Google 生产环境介绍 borg 是 k8s 的前身。 拥抱风险 服务质量 现在的 SLO 没有更细粒度的划分到季度 如果划分到季度,需要用这个数据来限制什么或者进行什么活动? L1S 链路的 SLA 的签署工作已经做了很多 对于 SLA 的达成情况数据没有…

HTB-SAU

信息收集 # cat port.nmap # Nmap 7.94 scan initiated Thu Jan 11 19:26:51 2024 as: nmap -sS --min-rate 10000 -p- -oN port.nmap 10.10.11.224 Nmap scan report for 10.10.11.224 (10.10.11.224) Host is up (0.28s latency). Not shown: 65531 closed tcp ports (r…

【RHEL】Vivado调用VCS+Verdi联合仿真报错解决

问题描述 在使用VCS Verdi仿真Vivado工程时,点击行为仿真按钮进度条窗口消失后,Verdi窗口并未出现,查看消息报错如下: vcs: line 34205: 119837 Segmentation fault (core dumped) ${TOOL_HOME}/bin/cfs_ident_exec -f ${X…

OpenCV 基于C++图像读取及存储API函数

OpenCV可以从存储介质中读入图像,也可以将摄像头(Camera)抓取的图像载入内存,然后进行处理。而存储图像就是将内存中的图像数据写入存储介质中,如写入硬盘、优盘等。 OpenCV要读入图像、操作图像。首先要用到Mat类,并且需创建Mat对…

yolov5口罩检测模型

1 项目背景及意义 全球范围内的公共卫生安全和人脸识别技术的发展。在面对新型冠状病毒等传染病的爆发和传播风险时,佩戴口罩成为一种重要的防护措施。然而,现有的人脸识别系统在识别戴口罩的人脸时存在一定的困难。 通过口罩识别技术,可以…

C程序训练:与输入有关的错误

在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误&#xff0c;下面举例说明。 下面程序的运行结果是错的&#xff0c;但程序又没有错&#xff0c;到底问题出现在哪呢&#xff1f; #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…

Curl命令POST请求

curl工具介绍&#xff1a; CURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;被广泛应用在Unix、Linux发行版中&#xff0c;并且有DOS和Win32、Win64的移植版本。同时它还支持诸多的通信协议&#xff08;我们常用的有HTTP、HTTPS、FTP、SMTP、TELNET等&#xff0…

山西电力市场日前价格预测【2024-01-14】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-14&#xff09;山西电力市场全天平均日前电价为415.13元/MWh。其中&#xff0c;最高日前电价为851.84元/MWh&#xff0c;预计出现在18:15。最低日前电价为198.87元/MWh&#xff0c;预计…