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

当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理

前言

本文档意在说明 当使用者 gcc 版本Linux系统默认的gcc版本 存在 大版本差异 时,怎样处理,能够兼用多个版本 并且对已有 程序影响最小

问题描述

  • linux系统默认的gcc版本:7.5.0
  • 我们程序需要使用的gcc版本:8.4.0

安装具体操作步骤

ubuntu 下操作步骤

介绍
我们在Ubuntu下使用它自带的软甲包管理器 apt 来安装,这样更简单,也更符合 Ubuntu 系统的使用习惯。

目标
安装 gcc 8 并且保留原有的 gcc 编译器

具体步骤

注意:在执行上述命令之前,请确保您的系统已经更新到最新,并且已经安装了基本的开发工具,例如 gccmakegit

  • 要在 Ubuntu 上安装 GCC 8 版本,您可以按照以下步骤操作:
    1. 打开终端,并使用以下命令更新软件包列表:
    • sudo apt update
    1. 使用以下命令安装 GCC 8
    • sudo apt install gcc-8 g++-8
    1. 安装完成后,您可以使用以下命令验证 GCC 的版本:
    • gcc-8 --version
    • 您应该能够看到 GCC 8 的版本信息。

CentOS 下操作步骤

介绍
我们在CentOS下使用它自带的软甲包管理器 devtoolset 来安装,这样更简单,也更符合 CentOS 系统的使用习惯。

目标
安装 gcc 8 并且保留原有的 gcc 编译器

具体步骤

注意:在执行上述命令之前,请确保您的系统已经更新到最新,并且已经安装了基本的开发工具,例如 gccmakegit

  • 要安装 GCC 8 版本并通过 devtoolset 管理,您可以按照以下步骤操作:
    1. 确保您已经安装了 devtoolset 工具。如果没有安装,您可以使用以下命令安装:
    • sudo yum install devtoolset-8
    1. 接下来,使用以下命令启用 devtoolset-8
    • source /usr/bin/enable-devtoolset-8
    1. 启用了 devtoolset-8 之后,您可以使用以下命令安装 GCC 8
    • sudo yum install gcc8-gcc
    1. 安装完成后,您可以使用以下命令验证 GCC 的版本:
    • gcc --version
    • 您应该能够看到 GCC 8 的版本信息。

部署具体操作步骤

ubuntu 下操作步骤

介绍
我们在Ubuntu下安装完成之后,可以使用8版本的gcc了,但是我们使用时需要显式指定gcc-8这样在编码时,需要特殊指定,否则易冲突。

针对这种情况,我们可以更改环境变量来让gcc 直接指定到 gcc-8并且不同账户之间 可以使用各自的版本

目标
gcc 直接指定到 gcc-8并且不同账户之间 可以使用各自的版本

具体步骤
要使当前账户的默认 GCC 版本设置为 GCC-8,您可以执行以下步骤:

  1. 如果您只想在当前账户中使用 GCC-8,可以在 .bashrc 文件中添加以下内容:
    alias gcc=gcc-8
    alias g++=g++-8
  2. 保存并关闭文件,然后运行以下命令使更改生效:
    source ~/.bashrc
  3. 现在,每当您在这个账户的终端中键入 gcc 时,将默认使用 GCC-8 版本。

补充
请注意,下面的方法将改变整个系统默认 GCC 版本

  1. 打开终端。
  2. 使用以下命令更新默认的 GCC 版本:
  • update-alternatives --config gcc
  1. 在出现的选项中,选择 GCC-8 的版本。
  2. 保存并退出。
  3. 现在,当您在终端中键入 gcc 时,将默认使用 GCC-8 版本。

重要说明

如果你需要编译c++ 程序,那么你不仅仅要使用 gcc-8,还需要g+±8 这两者都需要指定,在安装gcc8时,这两者都已经安装成功了,但是在使用时,需要分别指定映射版本。否则会会出现编译错误,在c和c++混编时更易出现报错。

CentOS 下操作步骤

介绍
我们在CentOS下安装完成之后,可以使用8版本的gcc了,但是我们使用时需要显式指定gcc-8这样在编码时,需要特殊指定,否则易冲突。

针对这种情况,我们可以更改环境变量来让gcc 直接指定到 gcc-8并且不同账户之间 可以使用各自的版本

目标
gcc 直接指定到 gcc-8并且不同账户之间 可以使用各自的版本

具体步骤
要使当前账户的默认 GCC 版本设置为 GCC-8,您可以执行以下步骤:

  1. 如果您只想在当前账户中使用 GCC-8,可以在 .bashrc 文件中添加以下内容:
# User specific aliases and functions
echo "Loading GCC8..."
#scl enable devtoolset-8 bash
source scl_source enable devtoolset-8
  1. 保存并关闭文件,然后运行以下命令使更改生效:
    source ~/.bashrc
  2. 现在,每当您在这个账户的终端中键入 gcc 时,将默认使用 GCC-8 版本。

分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

相关文章:

当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理

前言 本文档意在说明 当使用者 gcc 版本 和 Linux系统默认的gcc版本 存在 大版本差异 时,怎样处理,能够兼用多个版本 并且对已有 程序影响最小。 问题描述 linux系统默认的gcc版本:7.5.0我们程序需要使用的gcc版本:8.4.0 安装…...

深度学习之卷积神经网络理论基础

深度学习之卷积神经网络理论基础 卷积层的操作(Convolutional layer) 在提出卷积层的概念之前首先引入图像识别的特点 图像识别的特点 特征具有局部性:老虎重要特征“王字”仅出现在头部区域特征可能出现在任何位置下采样图像&#xff0c…...

控制台的高度可调有哪些重要意义解析

在现代办公环境中,控制台的高度可调性越来越受到重视。它不仅为员工提供了更加舒适的工作环境,还提高了工作效率和生产力。本文将详细探讨控制台高度可调的重要性,并解析其在实际应用中的优势。 个性化适应需求 对于长时间在控制台前工作的用…...

智能招聘?远在天边,近在眼前

2023年曾被称为“史上最卷毕业季”,当年应届高校毕业生高达1158万人。人力资源社会保障部公布的数据显示,即将到来的2024毕业季,全国普通高校毕业生规模预计将达1179万人,同比增加21万人,就业总量压力依然高企。看来&a…...

文字游侠AI丨简直是写作神器,头条爆文一键生成稳定赚米!附渠道和详细教程(只需四步)!

在数字时代的浪潮中,人们不断寻求网络空间中的商机,期望在互联网的浩瀚海洋里捕捉到稳定的财富。随着人工智能技术的突飞猛进,越来越多的AI工具被融入到各行各业,开辟了新天地,带来了创新的盈利模式。 其中&#xff0c…...

【ES6】简单剖析一下展开运算符 “ ... “

基本用法 let row {id: 1,name: John Doe,age: 30 };let newRow { ...row };console.log(newRow); // 输出: { id: 1, name: John Doe, age: 30 }基本用法就是通过展开运算符,将某个对象中的元素依次展开,然后赋值给新的对象。 但是值得注意的是&…...

java StringUtils类常用方法

StringUtils类是Apache Commons Lang库中提供的一个工具类,用于处理字符串操作。它包含了许多常用的方法,以下是其中一部分常用方法: StringUtils.isEmpty(String str):判断字符串是否为空,如果字符串为null、空字符串…...

科锐国际(计算机类),汤臣倍健,中建三局,宁德时代,途游游戏,得物,蓝禾,顺丰,康冠科技24春招内推

科锐国际(计算机类),汤臣倍健,中建三局,宁德时代,途游游戏,得物,蓝禾,顺丰,康冠科技24春招内推 ①汤臣倍健 【内推岗位】:市场类、营销类、研发类…...

一些常见开发框架相关题目,RESTful是什么,Electron是什么,Express, Koa

RESTful架构 1. 什么是RESTful架构? REST(Representational State Transfer)是一种软件架构风格,它强调简单、无状态的接口,以资源为核心,使用统一的接口进行资源的访问。RESTful架构通常基于HTTP协议&am…...

C++进阶之路:何为默认构造函数与析构函数(类与对象_中篇)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

初识C语言——第二十一天

猜数字小游戏的实现&#xff1a; 学会了之后可以自己制作彩票抽奖&#xff0c;哈哈&#xff01; 代码实现&#xff1a; #include <stdlib.h> #include <time.h>void menu()//无返回值函数 {printf("**************************\n");printf("****…...

使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化

生成数据 使用make_blobs生成数据并使用matplotlib进行可视化 完整代码&#xff1a; from sklearn.datasets import make_blobs # KNN 分类器 from sklearn.neighbors import KNeighborsClassifier # 画图工具 import matplotlib.pyplot as plt # 数据集拆分工具 from sklea…...

WSL2-Ubuntu(深度学习环境搭建)

1.在Windows的WSL2上安装Ubuntu 流程可参考&#xff1a;https://www.bilibili.com/video/BV1mX4y177dJ 注意&#xff1a;中间可能需要使用命令wsl --update更新一下wsl。 2.WSL数据迁移 按照下面流程&#xff1a;开始菜单->设置->应用->安装的应用->搜索“ubun…...

政务服务电子文件归档和电子档案管理系统,帮助组织收、管、存、用一体化

作为数字政府建设的重要抓手&#xff0c;政务服务改革经过多年发展&#xff0c;截至 2022 年底&#xff0c;全国一体化在线政务服务平台实名用户超过10亿人&#xff0c;在政务服务、办件过程中出现了大量需要归档的电子文件&#xff0c;对于电子档案、电子证照的需求愈加强烈。…...

2024.05.15学习记录

1、完成Ts重构Axios项目中更多功能的开发 2、刷题&#xff1a;二叉树&#xff08;代码回忆录&#xff09; 3、复习diff算法源码解读...

[前端] 深度选择器deep使用介绍(笔记)

参考文献 深度选择器 深度选择器deep使用说明 在 Vue 中&#xff0c;为了实现组件内部样式对组件外部元素的穿透覆盖&#xff0c;可以使用 CSS 的 deep 选择器&#xff08;也称为 >>> 或 /deep/&#xff09;或 v-deep 指令。然而&#xff0c;这两个方法在 Vue 3 中…...

simlink 初步了解

1.simlink概要 Simulink是基于MATLAB的框图设计环境&#xff0c;它提供了一个动态系统建模、仿真和分析的集成环境。Simulink是一个模块图环境&#xff0c;用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。 Simulink的特…...

【SRC实战】退款导致零元购支付漏洞

挖个洞先 https://mp.weixin.qq.com/s/3k3OCC5mwI5t9ILNt6Q8bw “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 1、购买年卡会员 2、订单处查看已支付 3、申请退款 4、会员仍然有效 5、使用另一个账号重复支付退款操作&#…...

一篇文章搞懂退火算法

退火算法,全称为模拟退火算法(Simulated Annealing,SA),是一种通用概率算法,用来在给定一个大的搜寻空间内找寻问题的近似最优解。模拟退火算法灵感来源于固体物理学中的退火过程,这一过程中,物质被加热后再缓慢冷却,原子会在加热过程中获得较大的运动能量,随着温度的…...

浅说文心一言

文心一言&#xff08;ERNIE Bot&#xff09;是一个基于Transformer结构的知识增强大语言模型&#xff0c;它可以根据用户的指令和输入&#xff0c;生成相应的回答或文本。以下是一些常见的指令示例&#xff0c;你可以根据需要进行调整&#xff1a; 问答指令&#xff1a; "…...

深入解析pysim中的eUICC ISD-R命令:从基础操作到高级应用

1. eUICC ISD-R命令基础入门 第一次接触eUICC ISD-R命令时&#xff0c;我完全被那些专业术语搞晕了。经过几个项目的实战&#xff0c;我发现这些命令其实就像智能手机上的应用商店操作——只不过管理的是SIM卡上的应用。eUICC&#xff08;嵌入式通用集成电路卡&#xff09;是现…...

【全球首批C++27静态反射商用项目解密】:西门子PLC配置引擎重构实测——编译时间+12%,运行时内存下降93.7%

第一章&#xff1a;C27静态反射工业应用案例C27引入的静态反射&#xff08;Static Reflection&#xff09;核心特性——基于std::reflexpr与编译期元对象模型&#xff08;Meta Object Model, MOM&#xff09;——已进入关键工业验证阶段。多家汽车电子与工业控制厂商在AUTOSAR …...

何为多态?

多态的概念多态是面向对象编程的三大特性之一&#xff08;封装、继承、多态&#xff09;&#xff0c;指同一操作作用于不同对象时会产生不同的行为。具体表现为父类引用指向子类对象&#xff0c;并在运行时根据实际对象类型调用相应的方法。多态的好处提高代码扩展性通过多态&a…...

先被日本汽车打败,再被中国汽车冲击,欧洲车面临崩盘,已累计裁员50万人!

大众汽车在公布2025年的利润腰斩之后&#xff0c;发布了进一步裁员计划&#xff0c;到2030年将削减5万个工作岗位&#xff0c;占它当下员工总人数的比例大约7.5%&#xff0c;由此业界人士统计了近几年来欧洲诸多车企以及汽车供应链企业宣布的裁员人数&#xff0c;发现欧洲汽车行…...

电路板测试点设计与自动化测试实践

1. 测试点的本质作用在电子制造领域&#xff0c;测试点&#xff08;Test Point&#xff09;是电路板上那些看似多余的小圆点&#xff0c;但它们却是保证产品质量的关键设计。作为一名有十年经验的硬件工程师&#xff0c;我见过太多因为忽视测试点设计而导致量产失败的案例。测试…...

电源防反接电路设计与工程实践

1. 电源防反接电路的必要性在工业自动化和嵌入式系统设计中&#xff0c;电源接反是一个常见但危害极大的问题。不同于消费电子产品使用标准化接口&#xff0c;许多工业设备需要现场接线&#xff0c;操作人员稍有不慎就可能接错电源极性。我曾参与过一个煤矿监控系统的项目&…...

开源工具DLSS Swapper:提升游戏帧率的智能版本管理方案

开源工具DLSS Swapper&#xff1a;提升游戏帧率的智能版本管理方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在3A游戏画面日益精美的今天&#xff0c;如何在不牺牲画质的前提下提升帧率成为玩家面临的普遍挑战。…...

改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束,以最小化最大完工...

改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束&#xff0c;以最小化最大完工时间为目标函数&#xff0c;使用ipox、ux两种交叉方式&#xff0c;改进G-L-R初始化机制提升初始种群质量&#xff0c;使用变邻域搜索机制对空间进行局部搜索 更换关键工厂中…...

智能样式识别Word文档智能排版批量处理文档格式统一设置字体、字号、颜色、段落间距高效统一样式排版工具

大家好&#xff0c;我是大飞哥。在日常办公中&#xff0c;批量处理 Word 文档格式是最耗时的工作之一&#xff0c;尤其是多份文档样式不统一、表格错乱、图片排版混乱&#xff0c;手动调整不仅效率极低&#xff0c;还很难做到规范一致&#xff0c;严重影响办公效率 —— 这款Wo…...

别再买成品了!手把手教你用立创EDA复刻TP4056充电板,成本不到3块钱

3元自制18650充电器&#xff1a;立创EDA复刻TP4056全流程实战 每次看到抽屉里闲置的18650电池&#xff0c;总想给它们配个充电器&#xff0c;但市面上的成品要么价格虚高&#xff0c;要么功能过剩。作为一个常年折腾电子制作的爱好者&#xff0c;我发现用立创EDA复刻TP4056充电…...