当前位置: 首页 > news >正文

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

在 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.5sudo ln -s /opt/rh/devtoolset-10/root/bin/gcc /usr/bin/gccmv /usr/bin/g++ /usr/bin/g++-4.8.5sudo 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 环境变量,则将这些变量设置为与工具集中对应的编译器路径。

相关文章:

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

在 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,就把数字替换成对应的版本号。例如上面代…...

PyTorch项目源码学习(1)

PyTorch PyTorch是一个开源的深度学习框架,项目地址 https://github.com/pytorch/pytorch 在学术工作中的使用频率较高。 其主体由C开发,PyTorch是Torch的Python调用版本。学习PyTorch项目源代码的目的在于学习其中的实现方法与技巧,增加训练…...

adb 使用的出现 adb server is out of date. killing

我知道你们肯定看到这种播客 像这种解决问题的方法是暂时的 , 因为我们Android studio 中 , 你在查看后台的时候发现 你的Android studio 也占用了一端口 , 就是说你把 Android studio 杀掉了只要打开 Android studio 打开就还是 关闭 cmd adb 看到一个新的方法 , win 10 中…...

数据结构之二叉搜索树(Binary Search Tree)

数据结构可视化演示链接,也就是图片演示的网址 系列文章目录 数据结构之AVL Tree 数据结构之B树和B树 数据结构之Radix和Trie 文章目录 系列文章目录示例图定义二叉搜索树满足的条件应用场景 示例图 二叉 线形(顺序插入就变成了线性树,例如插入顺序为&…...

Spring Boot自定义启动Banner在线生成工具

记录一下,后续有更新添加 链接: Spring Boot自定义启动Banner在线生成工具...

Android Studio导入项目 下载gradle很慢或连接超时,提示:Read timed out---解决方法建议收藏!

目录 前言 一、报错信息 二、解决方法 三、更多资源 前言 一般来说,使用Android Studio导入项目并下载gradle的过程应该是相对顺利的,但是有时候会遇到下载速度缓慢或连接超时的问题,这可能会让开发者感到头疼。这种情况通常会出现在网络…...

汽车标定技术(十五)--FETK如何帮助Aurix实现快速原型、标定测量功能(1)

目录 1.概述 2.ETK描述 2.1 产品概述 2.2 FETK-T1.1产品描述 2.3 FETK-T1.1内部构造 3.小结...

linux项目部署(jdk,tomcat,mysql,nginx,redis)

打开虚拟机,与连接工具连接好,创建一个文件夹 cd /tools 把jdk,tomcat安装包放入这个文件夹里面 jdk安装 #解压 tar -zxvf apache-tomcat-8.5.20.tar.gz #解压jdk tar -zxvf jdk-8u151-linux-x64.tar.gz 编辑jdk文件以及测试jdk安装 第一行代码路径…...

Unity | 渡鸦避难所-6 | 有限状态机控制角色行为逻辑

1 有限状态机简介 有限状态机(英语:finite-state machine,缩写:FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型 在游戏开发中应用有限状态机&#xff…...

数据库参数 PGA_AGGREGATE_LIMIT 限制进程大小

在自动化 PGA 内存管理模式下,Oracle 数据库通过动态控制分配到工作区的 PGA 内存量来尝试遵从 PGA_AGGREGATE_TARGET 值。但是,有时因为以下原因,PGA 内存使用量可能会超过 PGA_AGGREGATE_TARGET 设置: PGA_AGGREGATE_TARGET 设置…...

208.【2023年华为OD机试真题(C卷)】停车场车辆统计(贪心算法实现-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-停车场车辆统计二.解题思路三.题解代码Python题…...

JS 作用域和预解析

作用域 通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 作用域分为全局作用域和局…...

各种锁的概述

乐观锁与悲观锁 悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。 悲观锁的实现往往依靠数据库提供的锁机制&#xff0…...

【docker笔记】Docker容器数据卷

Docker容器数据卷 卷就是目录或者文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性 卷的设计目的就是数据的持久化,完全独…...

大前端nestjs入门教程系列(四):如何nestjs整合mysql数据库

经过前面的几篇文章,想必大家已经对nestjs有了基础的了解,那么这篇文章就带大家玩玩数据库,学会了这篇,就离大前端又进了一步 Nest与数据库无关,使你可以轻松地与任何 SQL 或 NoSQL 数据库集成。 根据你的喜好&#xf…...

Android studio环境配置

1.搜索android studio下载 Android Studio - Download 2.安装 3.配置环境 配置gradle,gradle参考网络配置。最后根据项目需求选择不同的jdk。...

017、使用包、单元包及模块来管理日渐复杂的项目

在编写较为复杂的项目时,合理地对代码进行组织与管理很重要,因为我们不太可能记住代码中所有的细枝末节。只有按照不同的特性来组织或分割相关功能的代码,我们才能够清晰地找到实现指定功能的代码片段,或确定哪些地方需要修改。 到…...

Git提交规范详解

在团队协作开发中,Git作为版本控制系统,其提交信息的清晰性和一致性至关重要。通过定义特定的提交类型和格式,我们可以更好地追踪项目历史,提高代码审查效率,并方便生成高质量的变更日志。以下是几种常见的Git提交类型…...

线程与UI操作

子线程中不能执行UI操作。 UI 操作指的是与用户界面(User Interface)相关的操作,包括但不限于以下几种: 更新视图:例如更改 TextView 的文本内容、设置 ImageView 的图片等。处理用户输入:例如响应按钮点…...

ELK企业级日志系统分析系统

目录 一、什么是ELK? 二、ELK三大组件 三、ELK的工作原理 四、完整日志系统基本特征 一、什么是ELK? ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用…...

大语言模型应用落地:从RAG到工作流,IT企业智能转型全攻略!

引言检索增强生成(RAG)微调(Fine-Tuning)智能体(Agents)工作流与流程编排(Workflow)企业落地策略与阶段规划落地难点与最佳实践建议结语引言大语言模型(LLM)技…...

当心“Pin-to-Pin兼容“陷阱:ICM-42688国产替代芯片深度拆解与避坑指南

两句话总结:近期TDK ICM-42688-P价格暴涨至百元且一芯难求,立创商城上出现了华轩阳、Tokmas等"国产替代"。本文通过详细对比三家datasheet数据手册,揭示所谓"兼容"背后的软件陷阱与性能差异。结论可能出乎你意料&#xf…...

前端AI新选择:Transformer.js vs TensorFlow.js,你的项目该用哪个?

前端AI新选择:Transformer.js与TensorFlow.js深度技术选型指南 当浏览器逐渐成为新一代计算平台时,前端开发者正面临一个关键抉择:如何在客户端高效部署机器学习能力?我曾为一个医疗咨询项目选择技术方案时,团队在Tran…...

Python AI 用例工具部署踩坑实录:Docker镜像体积暴增300%、GPU显存泄漏、模型热加载失败的5个根因与秒级修复方案

第一章:Python AI 用例工具部署的典型失败图谱在真实生产环境中,Python AI 工具链(如 LangChain、LlamaIndex、FastAPI 封装的推理服务)的部署失败往往并非源于模型能力缺陷,而是由基础设施、依赖冲突与配置漂移引发的…...

UE4SS终极指南:解锁虚幻引擎4/5游戏Mod开发新境界

UE4SS终极指南:解锁虚幻引擎4/5游戏Mod开发新境界 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS …...

s2-pro语音合成教程:通过API批量提交任务+异步结果回调实现

s2-pro语音合成教程:通过API批量提交任务异步结果回调实现 1. 平台简介 s2-pro是Fish Audio开源的专业级语音合成模型镜像,它能够将文本转换为自然流畅的语音。这个工具特别适合需要批量处理语音合成任务的场景,比如有声书制作、客服语音生…...

基于MATLAB的VSG逆变器无源性分析与稳定性研究

基于MATLAB的VSG逆变器无源性分析与稳定性研究 摘要 随着分布式发电和微电网技术的快速发展,逆变器作为新能源并网的关键接口,其稳定性问题日益突出。虚拟同步发电机(VSG)控制技术通过模拟同步发电机的机电特性,为逆变器提供惯性和阻尼支撑,成为提升系统稳定性的重要手…...

探索AI原生应用领域向量数据库的无限潜力

探索AI原生应用领域向量数据库的无限潜力关键词:向量数据库、AI原生应用、Embedding、向量相似度、多模态检索、大模型协同、语义理解摘要:当AI从“辅助工具”进化为“原生生产力”,一种专为AI设计的数据库——向量数据库,正在重塑…...

如何用NanoMsg的6种通信模式搞定分布式系统开发?附代码示例

如何用NanoMsg的6种通信模式构建高可靠分布式系统?实战代码解析 在分布式系统开发中,通信模式的选择往往决定了整个架构的扩展性和可靠性。NanoMsg作为轻量级高性能通信库,提供了6种经过验证的通信模式,每种都对应着特定的应用场景…...

告别丑曲线!PPT波浪线绘制保姆级教程(含压缩技巧)

告别丑曲线!PPT波浪线绘制保姆级教程(含压缩技巧) 在商务演示、学术报告或品牌提案中,一条流畅的波浪线往往能成为视觉焦点——它既能引导观众视线,又能传递动态趋势。但PPT自带的形状库中,那些生硬的预设曲…...