gcc升级(含命令行升级、手动升级两种方式)

news2024/9/19 23:08:49

gcc升级

  • 1.yum源替换
    • 1.1 备份原始repo配置文件
    • 1.2 重新配置CentOS-Base.reporepo文件
    • 1.3 清除缓存并重新创建
  • 2. gcc安装
  • 3.命令行升级gcc
  • 4.手动升级
    • 4.1 安装包下载
    • 4.2 解压
    • 4.3 gcc升级
      • 4.3.1 依赖拉取
      • 4.3.2 gmp安装
      • 4.3.3 mpfr安装
      • 4.3.4 mpc安装
      • 4.3.5 gcc编译、安装
    • 4.4 gcc命令配置

1.yum源替换

默认yum源不可用,替换为国内源
替换前:
在这里插入图片描述

1.1 备份原始repo配置文件

cd /etc/yum.repos.d/
mkdir bak
mv CentOS-* bak/

在这里插入图片描述

1.2 重新配置CentOS-Base.reporepo文件

若服务器有wget命令,可复制下述命令直接从互联网拉取阿里配置源到服务器
wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo

若服务器为最小化安装,没有wget命令,可以直接在/etc/yum.repos.d/目录下,创建名称为CentOS-Base.repo的文件,把下述内容复制到配置文件中

CentOS-Base.reporepo全内容

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

修改后:
在这里插入图片描述

1.3 清除缓存并重新创建

yum clean all
yum makecache

在这里插入图片描述

2. gcc安装

yum -y install gcc gcc-c++

安装后,默认版本为:4.8.5
在这里插入图片描述

3.命令行升级gcc

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable">> /etc/profile

执行过程中出现异常信息:
1.安装:centos-release-scl时正常,安装:devtoolset-9-gcc、devtoolset-9-gcc-c++、devtoolset-9-binutilse时出现报错
在这里插入图片描述
解决方法: 查看报错信息,报错为:CentOS-SCLo-scl-rh.repo文件地址无法访问
使用阿里对应的配置文件,修改改文件内容
CentOS-SCLo-scl-rh.repo文件全内容

[centos-sclo-rh]
name=CentOS-$releasever - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

CentOS-SCLo-scl.repo文件内容

[centos-sclo-sclo]
name=CentOS-$releasever - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

2.清除缓存,重新创建缓存后,再次安装devtoolset-9-gcc、devtoolset-9-gcc-c++、devtoolset-9-binutilse出现异常信息
在这里插入图片描述
解决方法: 查看报错信息为密钥问题,尝试在安装时候,直接安装,不校验密钥

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse --nogpgcheck

成功安装
在这里插入图片描述
在当前shell终端中使devtoolset-9生效,配置永久使用devtoolset-9,查看gcc版本,已经成功升级到9.3.1
在这里插入图片描述

4.手动升级

9.3.0为例

4.1 安装包下载

# 创建存放目录
mkdir -p /apps/scripts
cd /apps/scripts/

# gcc安装包下载
下载地址:https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
可下载后上传,或直接在服务器上从互联网拉取
wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz

在这里插入图片描述

4.2 解压

tar -xzf gcc-9.3.0.tar.gz
cd gcc-9.3.0

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

[root@rhel76 gcc-10.1.0]# mkdir build

[root@rhel76 gcc-10.1.0]# cd build/

[root@rhel76 build]# …/configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

4.3 gcc升级

4.3.1 依赖拉取

cd /apps/scripts/gcc-9.3.0/

./contrib/download_prerequisites
// 在gcc-9.3.0目录下,多了gmp-6.1.0.tar.bz2、isl-0.18.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2四个压缩文件
// 若已经安装了bzip2命令,则会自动解压上述压缩包
// 演示环境为最小化安装,目前未安装bzip2命令

在这里插入图片描述

4.3.2 gmp安装

解压gmp

cd /apps/scripts/gcc-9.3.0/
tar -xvjf gmp-6.1.0.tar.bz2
解压报错:
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

在这里插入图片描述
安装bzip2后,重新解压

安装bzip2
yum -y install bzip2 m4
// bzip2:解决上述报错  m4:解决configure过程中报错

继续安装gmp
tar -xvjf gmp-6.1.0.tar.bz2
cd /apps/scripts/gcc-9.3.0/gmp-6.1.0
./configure --prefix=/usr/local/gmp-6.1.0
make
make install

解压完成
在这里插入图片描述
configure 完成
在这里插入图片描述
make完成
在这里插入图片描述
make install完成
在这里插入图片描述
在这里插入图片描述

4.3.3 mpfr安装

cd /apps/scripts/gcc-9.3.0/
tar -xvjf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0
make
make install

解压完成
在这里插入图片描述
configure 完成
在这里插入图片描述
make完成
在这里插入图片描述
make install 完成
在这里插入图片描述在这里插入图片描述

4.3.4 mpc安装

cd /apps/scripts/gcc-9.3.0/
tar -xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4
make
make install

解压完成
在这里插入图片描述
configure 完成
在这里插入图片描述
make完成
在这里插入图片描述
make install 完成
在这里插入图片描述
在这里插入图片描述

4.3.5 gcc编译、安装

cd /apps/scripts/gcc-9.3.0
mkdir build
cd build/
../configure --prefix=/usr/local/gcc-9.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3
make
yum -y remove gcc gcc-c++
make install

configure 完成
在这里插入图片描述
make完成–很久很久
在这里插入图片描述
build目录下对应文件大小
在这里插入图片描述
旧版本删除完成
在这里插入图片描述
GCC安装完成
在这里插入图片描述

4.4 gcc命令配置

ln -s /usr/local/gcc-9.3.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-9.3.0/bin/g++ /usr/bin/g++
gcc -v

在这里插入图片描述

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

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

相关文章

Linux环境变量进程地址空间

目录 一、初步认识环境变量 1.1常见的环境变量 1.2环境变量的基本概念 二、命令行参数 2.1通过命令行参数获取环境变量 2.2本地变量和内建命令 2.3环境变量的获取 三、进程地址空间 3.1进程(虚拟)地址空间的引入 3.2进程地址空间的布局和理解 …

简易CPU设计入门:本CPU项目的指令格式

在这一节里面,主要是理论知识,基本上不讲代码。不过,本项目的代码包,大家还是需要下载的。 本项目的代码包的下载方法,参考下面的链接所指示的文章。 下载本项目代码 本节,其实是要讲本项目CPU的指令集。…

大模型蒸馏技术

一篇题为《The Mamba in the Llama: Distilling and Accelerating Hybrid Models》的论文证明:通过重用注意力层的权重,大型 transformer 可以被蒸馏成大型混合线性 RNN,只需最少的额外计算,同时可保留其大部分生成质量。 先来说…

Python学习——【2.1】if语句相关语法

文章目录 【2.1】if语句相关一、布尔类型和比较运算符(一)布尔类型(二)比较运算符 二、if语句的基本格式※、练习 三、if-else组合判断语句※、练习 四、if-elif-else多条件判断语句※、练习 五、判断语句的嵌套※、实战案例 【2.…

AlexNet项目图片分类通用模型代码

目录 一:建立AlexNet模型(在model文件中写) 1.构造5层卷积层 2.构造3层神经网络层 3.forward函数 4.模型最终代码 二:训练数据(在train中写) 1.读出数据 2.训练 3. 测试模型更新参数 4.完整的训练…

Datawhile 组队学习Tiny-universe Task01

Task01:LLama3模型讲解 仓库链接:GitHub - datawhalechina/tiny-universe: 《大模型白盒子构建指南》:一个全手搓的Tiny-Universe 参考博客:LLaMA的解读与其微调(含LLaMA 2):Alpaca-LoRA/Vicuna/BELLE/中文LLaMA/姜子…

新的突破,如何让AI与人类对话变得“顺滑”:Moshi背后的黑科技

你有没有想过,当我们跟智能音箱、客服机器人或者语音助手对话时,它们是怎么“听懂”我们说的话,又是怎么迅速给出回应的?就好像你对着Siri、Alexa说一句:“给我订个披萨”,它立刻明白你想要干嘛,然后帮你下单。背后的技术其实比我们想象的要复杂得多,但现在,有了Moshi…

Qt_布局管理器

目录 1、QVBoxLayout垂直布局 1.1 QVBoxLayout的使用 1.2 多个布局管理器 2、QHBoxLayout水平布局 2.1 QHBoxLayout的使用 2.2 嵌套的Layout 3、QGridLayout网格布局 3.1 QGridLayout的使用 3.2 设置控件大小比例 4、QFormLayout 4.1 QFormLayout的使用 5、…

【2024】前端学习笔记8-内外边距-边框-背景

学习笔记 外边距:Margin内边距:Padding边框:Border背景:Background 外边距:Margin 用于控制元素周围的空间,它在元素边框之外创建空白区域,可用于调整元素与相邻元素(包括父元素和兄…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月19日新模型预测第92弹

经过90多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,90多期一共只错了10次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0…

教育政策与智能技术:构建新时代教师队伍

据最新统计,我国目前拥有各级各类教师共计1891.8万人,这一庞大的教师群体不仅支撑起了全球规模最大的教育体系,更成为了推动教育创新与变革的主力军。面对教育数字化的不断发展,育人内容、目标要求、方式方法的全面升级&#xff0…

【测向定位】差频MUSIC算法DOA估计【附MATLAB代码】

​微信公众号:EW Frontier QQ交流群:554073254 摘要 利用多频处理方法,在不产生空间混叠的情况下,估计出高频区域平面波的波达方向。该方法利用了差频(DF),即两个高频之间的差。这使得能够在可…

鹏鼎控股社招校招入职SHL综合能力测评:高分攻略及真题题库解析答疑

鹏鼎控股(深圳)股份有限公司,成立于1999年4月29日,是一家专注于印制电路板(PCB)的设计、研发、制造与销售的高新技术企业。公司总部位于中国广东省深圳市,并在全球多个地区设有生产基地和服务中…

【软考】数据字典(DD)

目录 1. 说明2. 数据字典的内容2.1 说明2.2 数据流条目2.3 数据存储条目2.4 数据项条目2.5 基本加工条目 3. 数据词典管理4. 加工逻辑的描述4.1 说明4.2 结构化语言4.3 判定表4.3 判定树 5. 例题5.1 例题1 1. 说明 1.数据流图描述了系统的分解,但没有对图中各成分进…

软件自动定时启动器-添加可执行文件软件,设置启动的时间,也可以设置关闭的时间-供大家学习研究参考

点击添加软件,可以添加可执行文件软件,设置启动的时间,也可以设置关闭的时间 注意,时间为00:00:00 等于没设置,这个时间不在设置范围,其他任何时间都可以。 下载地址: h…

【C++ Primer Plus习题】16.9

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <ctime> #include <v…

驱动---动态模块编译

动态模块编译 ctags 用法 创建文件 ------- ctags -R 一定要在顶层目录下 1&#xff0e; ctags –R * 2. vi –t tag (请把tag替换为您欲查找的变量或函数名) 3&#xff0e; Ctrl ] (跳转到要找的目标) 4&#xff0e; Ctrl T (回跳) 5&#xff0e; set tag/p…

解决使用nvm管理node版本时提示npm下载失败的问题

目录 一、引言 二、解决步骤 1. 访问该网站下载对应版本的npm Release v6.14.18 npm/cli GitHubthe package manager for JavaScript. Contribute to npm/cli development by creating an account on GitHub.https://github.com/npm/cli/releases/tag/v6.14.18 2. 解压到n…

mac使用技巧

mac使用技巧 快捷键 Command-X&#xff1a;剪切所选项并拷贝到剪贴板。Command-C&#xff1a;将所选项拷贝到剪贴板。这同样适用于“访达”中的文件。Command-V&#xff1a;将剪贴板的内容粘贴到当前文稿或应用中。这同样适用于“访达”中的文件。Command-Z&#xff1a;撤销上…

高级算法设计与分析 学习笔记6 B树

B树定义 一个块里面存了1000个数和1001个指针&#xff0c;指针指向的那个块里面的数据大小介于指针旁边的两个数之间 标准定义&#xff1a; B树上的操作 查找B树 创建B树 分割节点 都是选择正中间的那个&#xff0c;以免一直分裂。 插入数字 在插入的路上就会检查节点需不需要…