【Linux】gcc升级13.2.0

错误信息

g++: error: unrecognized command line option ‘-std=gnu++14’

-std=c++14需要g++5.2以上,而centos默认的g++只有4.8.5,所以,要做的事情,是升级g++

下载gcc

  • 官网下载: https://ftp.gnu.org/gnu/gcc/
  • wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
  • 解压: tar zxvf gcc-13.2.0.tar.gz
  • 直接编译会报错
    configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
    Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
    their locations.  Source code for these libraries can be found at
    their respective hosting sites as well as at
    https://gcc.gnu.org/pub/gcc/infrastructure/.  See also
    http://gcc.gnu.org/install/prerequisites.html for additional info.  If
    you obtained GMP, MPFR and/or MPC from a vendor distribution package,
    make sure that you have installed both the libraries and the header
    files.  They may be located in separate packages.
    
  • 查看gcc的依赖: cat ./contrib/download_prerequisites,最上面的位置
gmp='gmp-6.2.1.tar.bz2'
mpfr='mpfr-4.1.0.tar.bz2'
mpc='mpc-1.2.1.tar.gz'
isl='isl-0.24.tar.bz2'

下载gcc依赖

  • 官网地址: https://gcc.gnu.org/pub/gcc/infrastructure/
  • GMT: wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
  • MPFR: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
  • MPC: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
  • ISL: wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.24.tar.bz2

解压依赖

tar jxvf gmp-6.2.1.tar.bz2
tar jxvf mpfr-4.1.0.tar.bz2
tar zxvf mpc-1.2.1.tar.gz
tar jxvf isl-0.24.tar.bz2

编译依赖

cd gmp-6.2.1/
./configure --prefix=/usr/local/gmp-6.2.1
make && sudo make install

cd ../mpfr-4.1.0/
./configure --prefix=/usr/local/mpfr-4.1.0 --with-gmp=/usr/local/gmp-6.2.1
make && sudo make install

cd ../mpc-1.2.1/
./configure --prefix=/usr/local/mpc-1.2.1 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0
make && sudo make install

升级步骤

# 进入gcc目录安装
cd gcc-13.2.0
# 下载某些依赖包,如果内网服务器不能上外网,就根据上面的步骤手动下载
./contrib/download_prerequisites
# 创建bulid文件夹
mkdir build
cd build
../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0 --with-mpc=/usr/local/mpc-1.2.1
# 编译gcc过程如果报找不到libmpfr.so.6,则执行以下2条命令
ln -s /usr/local/mpfr-4.1.0/lib/libmpfr.so.6.1.0 /usr/lib/libmpfr.so.6
ldconfig
# 编译安装,此过程耗时较长,建议使用后台运行
nohup make && make install &
# 修改软连接
mv /usr/bin/gcc /usr/bin/gcc_bak
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_bak
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
# 查看升级后版本
gcc --version
g++ --version

安装成功截图

在这里插入图片描述

问题处理

error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory

ln -s /usr/local/mpfr-4.1.0/lib/libmpfr.so.6.1.0 /usr/lib/libmpfr.so.6.1.0
ldconfig
# 然后重新安装gcc

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

liunx自动构建化工具make/makefile

liunx自动化构建工具 依赖关系和依赖方法makefile 文件格式 第一个项目 进度条牛刀小试 倒计时简单模版 makefile 的多文件编程 依赖关系和依赖方法 依赖关系:依赖关系是文件之间的关系。 依赖方法:依赖方法是文件之间相互作用的方法。通过方法产生关系…

java网络编程 02 socket

01.socket定义 02.TCP编程 import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;public class clientSocket {public static void main(String[] args) throws IOException {Socket socket new Socket(Inet…

HTTP协议与HTTPS协议

HTTP与*HTTPS HTTP协议HTTP请求的通信过程HTTP优点 HTTPS协议HTTPS优点SSL/TLS的工作原理?*公钥传递的信赖?*通过中间CA机构传输 HTTP协议 HTTP协议是一个无状态的协议, 服务器不维护任何有关客户端之前所发请求的消息。 是一种懒政,有状态协…

基于selenium自动化索引点击

小鹅快速刷题,根据selenium和xpath定位题干,使用模糊匹配fuzzywuzzy库查找题目匹配答案,自动点击,完成后更新题库 先导入基本包,准备好题库 from fuzzywuzzy import process from selenium import webdriver import …

9、Linux-安装JDK、Tomcat和MySql

目录 一、安装JDK 1、传输JDK文件(.tar.gz) 2、解压 3、备份环境变量 4、配置环境变量 5、重新加载环境变量 6、验证(java -version) 二、安装Tomcat 1、传输文件,解压到/usr/local 2、进入Tomcat的bin目录 …

如何从产品的角度做好内容营销?媒介盒子支招

内容运营就是指将生产传播内容并进行重组,去满足用户的内容消费需求,想要提高内容运营的效果,媒介盒子认为可以从产品出发,将内容运营与品牌产品相结合。那么应该怎么做呢?接下来就让媒介盒子告诉你。 一、 场景化内容…

Android岗面试,android内存优化面试题

前言 曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。 在工作初期,工作主要是按照业务需求实现App页面的功能,按照设…

太惊艳了!多微信管理利器,让你事半功倍!

作为现代社交媒体的主要平台之一,微信在商务领域中扮演着重要的角色。为了提高我们的工作效率,微信管理系统应运而生。 这个系统可以同时登录多个微信账号,并进行统一管理。除了便捷的登录管理功能外,微信管理系统还提供了许多实…

达梦数据库使用数据库迁移工具弹窗报错“获取模式失败”的解决办法

在使用数据库迁移工具Data Transfer Service时,在下面这个页面点击下一步之后报错“获取模式失败” 为什么会失败呢?我们去看看报错 这里显示系统处于MOUNT状态,这可能是出错的原因。我们去查看数据库状态。 发现是mount状态。 因为mount状态…

薪资18K需要什么水平?来看看97年测试工程师的面试全过程…

我的情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年…

爬虫实战——伯克利新闻【内附超详细教程,你上你也行】

文章目录 发现宝藏一、 目标二、简单分析网页1. 寻找所有新闻2. 分析模块、版面和文章 三、爬取新闻1. 爬取模块2. 爬取版面3. 爬取文章 四、完整代码五、效果展示 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

【Leetcode每日一刷】数组|704. 二分查找、27. 移除元素

力扣每日刷题 一、704. 二分查找1.1、题目1.2、解题思路1.3、代码实现——C1.4、 总结&易错 二、27. 移除元素2.1:题目2.2、解题思路2.3、代码实现——C1.4、 总结&易错 一、704. 二分查找 1.1、题目 704. 二分查找 1.2、解题思路 题型:数组…

java工程师面试简历模板,2024谈一下当下最合适的Java架构

前言 这些算法,都是小编一点一点看的大佬们的方法,自己积累的. 如果有什么描述的不对的地方还望大佬赐教 多交流才能进步,加油,冲冲冲!!! 目录 一、冒泡排序 二、选择排序 三、插入排序 四、快速…

【C++】递归 1241 - 角谷猜想 1108 - 正整数N转换成一个二进制数

文章目录 一、问题:1241 - 角谷猜想二、问题:1108 - 正整数N转换成一个二进制数三、总结四、感谢 一、问题:1241 - 角谷猜想 类型:有规律的循环、递归。 题目描述: 日本一位中学生发现一个奇妙的定理,请角…

Android岗大厂面试官常问的那些问题,2024年Android者未来的出路在哪里

前言 伟人曾经说过: 书是人类进步的阶梯 书中自有黄金屋,书中自有颜如玉 读书破万卷,下笔如有神 书是唯一不死的东西。 书籍是伟大的天才留给人类的遗产。 最近有很多朋友在我的公众号上提问“Android开发的经典入门教材和学习路线&#xff…

数据结构->链表分类与oj(题),带你提升代码好感

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 1.🍎链表的分类 前面我们学过顺序表,顺序表问题: …

redis IO多路复用模型详解

一、IO 1.1、IO模型 我们常说的IO,指的是文件的输入和输出 ,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的…

window环境下使用k8s部署.net core项目

前提:已经部署镜像到Docker 在项目发布目录下新建.yaml文件,内容如下(以下仅举例出两种方式内容,可按需自由配置) --方式一(创建deployment 、服务、指定命名空间) # ------------------- 注意层级结构,…

【debug】element-ui时间控件回显后不可编辑且显示为空

问题&#xff1a;使用element-ui的时间控件回显数据&#xff0c;编辑数据没有反应&#xff1a;点时间和“确认”按钮都没反应。 输入框中会显示数据&#xff0c;但提交时的校验显示为空。 <el-form-item label"开始时间" prop"limitStartTime"><…

激光炸弹 刷题笔记

前置知识 二维前缀和 子矩阵的和 刷题笔记 {二维前缀和}-CSDN博客 思路 参考二维前缀和 将子矩阵的和 做成动态矩阵 一个个矩阵搜索 符合要求边长 矩阵中的元素和最大值 将x1,y1用i-k,j-k表示即可 x2,y2用i&#xff0c;j表示 代码 #include<iostream> #include<…