当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理
前言
本文档意在说明 当使用者 gcc 版本 和 Linux系统默认的gcc版本 存在 大版本差异 时,怎样处理,能够兼用多个版本 并且对已有 程序影响最小。
问题描述
linux
系统默认的gcc
版本:7.5.0
- 我们程序需要使用的
gcc
版本:8.4.0
安装具体操作步骤
ubuntu
下操作步骤
介绍
我们在Ubuntu
下使用它自带的软甲包管理器 apt
来安装,这样更简单,也更符合 Ubuntu
系统的使用习惯。
目标
安装 gcc 8
并且保留原有的 gcc
编译器
具体步骤
注意:在执行上述命令之前,请确保您的系统已经更新到最新,并且已经安装了基本的开发工具,例如
gcc
、make
和git
。
- 要在
Ubuntu
上安装GCC 8
版本,您可以按照以下步骤操作:- 打开终端,并使用以下命令更新软件包列表:
sudo apt update
- 使用以下命令安装
GCC 8
:
sudo apt install gcc-8 g++-8
- 安装完成后,您可以使用以下命令验证
GCC
的版本:
gcc-8 --version
- 您应该能够看到
GCC 8
的版本信息。
CentOS
下操作步骤
介绍
我们在CentOS
下使用它自带的软甲包管理器 devtoolset
来安装,这样更简单,也更符合 CentOS
系统的使用习惯。
目标
安装 gcc 8
并且保留原有的 gcc
编译器
具体步骤
注意:在执行上述命令之前,请确保您的系统已经更新到最新,并且已经安装了基本的开发工具,例如
gcc
、make
和git
。
- 要安装
GCC 8
版本并通过devtoolset
管理,您可以按照以下步骤操作:- 确保您已经安装了
devtoolset
工具。如果没有安装,您可以使用以下命令安装:
sudo yum install devtoolset-8
- 接下来,使用以下命令启用
devtoolset-8
:
source /usr/bin/enable-devtoolset-8
- 启用了
devtoolset-8
之后,您可以使用以下命令安装GCC 8
:
sudo yum install gcc8-gcc
- 安装完成后,您可以使用以下命令验证
GCC
的版本:
gcc --version
- 您应该能够看到
GCC 8
的版本信息。
- 确保您已经安装了
部署具体操作步骤
ubuntu
下操作步骤
介绍
我们在Ubuntu
下安装完成之后,可以使用8版本的gcc
了,但是我们使用时需要显式指定gcc-8
这样在编码时,需要特殊指定,否则易冲突。
针对这种情况,我们可以更改环境变量来让gcc
直接指定到 gcc-8
并且不同账户之间 可以使用各自的版本
目标
让gcc
直接指定到 gcc-8
并且不同账户之间 可以使用各自的版本
具体步骤
要使当前账户的默认 GCC
版本设置为 GCC-8
,您可以执行以下步骤:
- 如果您只想在当前账户中使用
GCC-8
,可以在.bashrc
文件中添加以下内容:
alias gcc=gcc-8
alias g++=g++-8
- 保存并关闭文件,然后运行以下命令使更改生效:
source ~/.bashrc
- 现在,每当您在这个账户的终端中键入
gcc
时,将默认使用GCC-8
版本。
补充
请注意,下面的方法将改变整个系统的默认 GCC
版本。
- 打开终端。
- 使用以下命令更新默认的
GCC
版本:
update-alternatives --config gcc
- 在出现的选项中,选择
GCC-8
的版本。 - 保存并退出。
- 现在,当您在终端中键入
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
,您可以执行以下步骤:
- 如果您只想在当前账户中使用
GCC-8
,可以在.bashrc
文件中添加以下内容:
# User specific aliases and functions
echo "Loading GCC8..."
#scl enable devtoolset-8 bash
source scl_source enable devtoolset-8
- 保存并关闭文件,然后运行以下命令使更改生效:
source ~/.bashrc
- 现在,每当您在这个账户的终端中键入
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) 在提出卷积层的概念之前首先引入图像识别的特点 图像识别的特点 特征具有局部性:老虎重要特征“王字”仅出现在头部区域特征可能出现在任何位置下采样图像,…...

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

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

文字游侠AI丨简直是写作神器,头条爆文一键生成稳定赚米!附渠道和详细教程(只需四步)!
在数字时代的浪潮中,人们不断寻求网络空间中的商机,期望在互联网的浩瀚海洋里捕捉到稳定的财富。随着人工智能技术的突飞猛进,越来越多的AI工具被融入到各行各业,开辟了新天地,带来了创新的盈利模式。 其中,…...

【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语言——第二十一天
猜数字小游戏的实现: 学会了之后可以自己制作彩票抽奖,哈哈! 代码实现: #include <stdlib.h> #include <time.h>void menu()//无返回值函数 {printf("**************************\n");printf("****…...

使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化
生成数据 使用make_blobs生成数据并使用matplotlib进行可视化 完整代码: 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 流程可参考:https://www.bilibili.com/video/BV1mX4y177dJ 注意:中间可能需要使用命令wsl --update更新一下wsl。 2.WSL数据迁移 按照下面流程:开始菜单->设置->应用->安装的应用->搜索“ubun…...

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

2024.05.15学习记录
1、完成Ts重构Axios项目中更多功能的开发 2、刷题:二叉树(代码回忆录) 3、复习diff算法源码解读...

[前端] 深度选择器deep使用介绍(笔记)
参考文献 深度选择器 深度选择器deep使用说明 在 Vue 中,为了实现组件内部样式对组件外部元素的穿透覆盖,可以使用 CSS 的 deep 选择器(也称为 >>> 或 /deep/)或 v-deep 指令。然而,这两个方法在 Vue 3 中…...

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

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

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

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

IC设计企业如何实现安全便捷的芯片云桌面跨网摆渡?
IC设计企业,主要专注于集成电路的设计。这些企业通常包括集成电路、二极管、三极管和特殊电子元件等产品的设计和生产。IC设计企业在其运营和产品设计过程中,会涉及和产生多种文件,如: 项目需求文档:这是项目启动的基础…...

Hello, GPT-4o!
2024年5月13日,OpenAI 在官网正式发布了最新的旗舰模型 GPT-4o 它是一个 多模态模型,可以实时推理音频、视频和文本。 * 发布会完整版视频回顾:https://www.youtube.com/watch?vDQacCB9tDaw GPT-4o(“o”代表“omni”,…...

colab使用本地数据集微调llama3-8b模型
在Google的Colab上面采用unsloth,trl等库,训练数据集来自Google的云端硬盘,微调llama3-8b模型,进行推理验证模型的微调效果。 保存模型到Google的云端硬盘可以下载到本地供其它使用。 准备工作:将训练数据集上传到google的云端硬盘…...

YOLO数据集制作(二)|json文件转txt验证
以下教程用于验证转成YOLO使用的txt格式,适用场景:矩形框,配合json格式文件转成YOLO使用的txt格式脚本使用。 https://blog.csdn.net/StopAndGoyyy/article/details/138681454 使用方式:将img_path和label_path分别填入对应的图…...

linux常用命令(持续更新)
1.sudo -i 切换root权限 2. ll 和 ls 查看文件夹下面的文件 3. cat 查看文件内容 cat xxx.txt |grep 好 筛选出有好的内容 4. vi 编辑文件 点击insert进入编辑模式 编辑完之后点击Esc退出编辑模式 数据:wq!回车保存文件 5. ssh 连接到可以访问的系统 6. telnet 看端口是否可以…...

Excel表格导入/导出数据工具类
Excel表格导入/导出数据工具 这里以java语言为类,实现一个简单且较通用的Excel表格数据导入工具类。 自定义注解 ExcelColumn写导入工具类 ExcelImportUtil 自定义注解 ExcelColumn Retention(RetentionPolicy.RUNTIME) Target({java.lang.annotation.ElementTy…...

Python自学之路--004:Python使用注意点(原始字符串‘r’\字符转换\‘wb’与‘w区别’\‘\‘与‘\\’区别)
目录 1、原始字符串‘r’ 2、字符转换问题 3、open与write函数’wb’与’w’区分 4、Python里面\与\\的区别 1、原始字符串‘r’ 以前的脚本通过Python2.7写的,通过Python3.12去编译发现不通用了,其实也是从一个初学者的角度去看待这些问题。 其中的\…...

javaEE进阶——SpringBoot与SpringMVC第一讲
文章目录 什么是springMVCSpringMVC什么是模型、视图、控制器MVC和SpringMVC的关系SpringMVC的使用第一个SpringMVC程序RestController什么是注解 那么RestController到底是干嘛的呢?RequestMapping 如何接收来自请求中的querystryingRequestParamRequestMapping(&q…...

LabVIEW和usrp连接实现ofdm通信系统 如何实现
1. 硬件准备 USRP设备:选择合适的USRP硬件(如USRP B210或N210),并确保其与计算机连接(通常通过USB或以太网)。天线:根据频段需求选择合适的天线。 2. 软件安装 LabVIEW:安装LabVI…...

NGINX SPRING HTTPS证书
服务器:xxx.xxx.xxx.56 客户端器:xxx.xxx.xxx.94##生成服务器证书和密钥容器 keytool -genkey -alias tas-server -keypass 250250 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\https证书\tas-server.jks -storepass 250250 -dname "C…...