当自身需要使用的 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结构的知识增强大语言模型,它可以根据用户的指令和输入,生成相应的回答或文本。以下是一些常见的指令示例,你可以根据需要进行调整: 问答指令: "…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
