安装/升级 gcc

文章目录

    • 查看当前 gcc 版本
    • 查看 yum 软件库 gcc 版本列表
    • 下载最新版本
    • 安装

查看当前 gcc 版本

在这里插入图片描述

查看 yum 软件库 gcc 版本列表

只有一个4.8的版本,过旧
在这里插入图片描述

下载最新版本

在这里插入图片描述

wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz

在这里插入图片描述

安装

  • ./configure 报错
    在这里插入图片描述

    提示需要一个支持 c++ 11 的特性的编译器,也就是说我们当前的 gcc 不支持 c++ 11
    先尝试安装 gcc 的 c++ 支持
    yum install -y gcc-c++
    在这里插入图片描述
    在这里插入图片描述

  • ./configure 再次报错
    在这里插入图片描述

  • 通过报错下面的提示,可以看到 gmp mpfr mpc 三个软件包的下载网站,分别下载安装; 下载站点
    在这里插入图片描述
    在这里插入图片描述

  • 安装 gmp

    • 下载

    wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2 --no-check-certificate

    • 解压,-xvjf选项用于解压和解压缩文件,其中 x 表示提取,v 表示显示详细信息,j 表示使用 bzip2 算法解压缩,f 表示指定文件名

    tar -xjf gmp-4.3.2.tar.bz2

    • 安装

    cd gmp-4.3.2
    ./configure 报错,提示缺少 m4
    yum install -y m4 安装 m4
    ./configure 重新配置
    make -j 编译 -j 使用多线程加速,不指定线程数量,编译器会尽量使用足够多线程加速编译
    make install
    在这里插入图片描述

    • 注意记下安装目录,一般都是在 /usr/local 下
      在这里插入图片描述
  • 安装 mpfr

    • 下载

    wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 --no-check-certificate

    • 解压

    tar -xjf mpfr-3.1.4.tar.bz2

    • 安装

    cd mpfr-3.1.4
    ./configure
    make -j
    make install

    • 注意记下安装目录,一般都是在 /usr/local 下
      在这里插入图片描述
  • 安装 mpc

    • 下载

    wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz --no-check-certificate

    • 解压

    tar -zxf mpc-1.0.3.tar.gz

    • 安装

    cd mpc-1.0.3
    ./configure
    make -j
    make install

    • 注意记下安装目录,一般都是在 /usr/local 下

    在这里插入图片描述

  • ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local 继续报错 在这里插入图片描述
    这里应该是选择是否支持对 32-bit 程序的编译支持,如果需要,则要添加 --enable-multilib 选项。如果不需要,则要添加 --disable-multilib 选项。

  • ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-multilib 这回配置成功了

  • make -j 编译,报错找不到 libgmp.so.3, 事实上我们已经安装好 gmp,且通过查看 /usr/local/lib 可以找到该库文件。编译过程中找不到是因为编译脚本链接的动态库,需要额外添加 /usr/local/lib 到环境变量 LD_LIBRARY_PATH 中。关于这点,可以参考关于编译找不到动态库问题
    在这里插入图片描述

    vim ~/.bashrc
    在最后加上一句 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    保存退出后执行 source ~/.bashrc

  • make -j 编译,报错找不到 32-bit 相关头文件
    在这里插入图片描述
    这是由于选择了 --enable-multilib,但是当前的系统中缺少对应的 32位环境,需要安装 glibc-devel.i686

    yum install -y glibc-devel.i686

  • make -j 编译,编译了半天然后被系统信号中断,查看 /var/log/messages 发现是内存不够用了,把虚拟机的内存设置调整大一点,也可以试着不用 make -j, 直接 make,也许会减少点内存需求。
    在这里插入图片描述

  • 扩大虚拟机内存后,再次编译 make -j 这次编译成功了

  • make install 安装

  • gcc --version 查看 gcc 当前版本
    在这里插入图片描述

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

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

相关文章

2024年Android开发者跳槽指南,超强Android进阶路线知识图谱

一、概述 随着业务的发展,工程的逐渐增大与开发人员增多,很多工程都走向了模块化、组件化、插件化道路,来方便大家的合作开发与降低业务之间的耦合度。现在就和大家谈谈模块化的交互问题,首先看下模块化的几个优势。 模块化的优…

国创证券|645元克!买还是不买?

近日世界金价继续走强。截至记者发稿,纽约商业交易所(COMEX)黄金主力4月合约突破2100美元/盎司关口;国内方面,SHFE黄金主力合约则摸高498元/克,迫临500元/克的关口。 巨丰投顾高级出资参谋游晓刚对《证券日…

替代TPS7B7701QPWPRQ1/TPS7B7702QPWPRQ1单/双通道 车规级LDO

PC8803具有高输入电压单低压差调节器(PC8803SC01/PC8803SCO3)/双通道低压差调节(PC8803SC02/PC8803SC04),具有精确的电流感测,设计用于在宽输入电压范围内工作 从4.5V到40V。该设备具有45V负载转储电源输入…

微信小程序触屏事件_上划下划事件

一、微信小程序触屏事件 bindtouchstart:手指触摸动作开始 bindtouchmove:手指触摸后移动 bindend:手指触摸动作结束 属性类型说明touchesArray触摸事件,当前停留在屏幕中的触摸点信息的数组 Touch 对象 属性类型说明identi…

pgvector docker部署测试

docker pull pgvector/pgvector:pg16 运行 docker run --name pgvector --restartalways -e POSTGRES_USERpgvector -e POSTGRES_PASSWORDpgvector -v /srv/tlw/pgvectordata:/var/lib/postgresql/data -p 54333:5432 -d pgvector/pgvector:pg16 CREATE EXTENSION vector; --…

总结:大模型技术栈---算法与原理

原文地址:大模型技术栈-算法与原理 1. tokenizer方法 word-level char-level subword-level BPE WordPiece UniLM SentencePiece ByteBPE2. position encoding 绝对位置编码 ROPE AliBi 相对位置编码 Transformer-XL T5/TUPE DeBERTa3. 注意力机制 Mamba,H3,Hyena…

【Redis】Redis持久化模式RDB

目录 引子 RDB RDB的优缺点 小节一下 引子 不论把Redis作为数据库还是缓存来使用,他肯定有数据需要持久化,这里我们就来聊聊两种持久化机制。这两种机制,其实是 快照 与 日志 的形式。快照:就是当前数据的备份,我可以拷贝到磁…

C语言指针的初步认识--学习笔记(3)

1. 字符指针变量 在C语言中,字符串通常被视为字符数组,但它们可以有不同的表示方式。字符指针变量存储的是字符串的地址。这意味着,当你有一个字符串时,你可以通过改变字符指针的值来改变这个字符串,因为你实际上改变的…

保修期内经营者收取维修费用应遵循正当程序原则

↑↑↑“上海高院”头条号为您讲述精彩的法律科普内容 上海市第一中级人民法院在履行司法审判职能的同时,始终高度重视高质量案件工作,总结司法审判经验,努力提高司法审判质量。 在2020年全国法院系统优秀案例分析评选活动中,上海…

合并有序链反转链表(递归版)

每日一题系列(day 19) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50…

基于RFID技术+WMS仓储管理应用设计

一、项目背景 1.1 背景 仓储管理是企业对仓库及其内部物资进行计划、组织、控制和协调的管理过程。它在整个物流和经济活动中扮演着重要的角色,连接着生产者和消费者。 不同规模和产品种类的企业有不同的仓储管理流程和需求,但核心部分都包括仓库作业…

设计模式:策略模式 ⑥

一、策略模式思想 简介 策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。…

msvcp120.dll丢失的解决方法,教你快速解决msvcp120.dll问题

msvcp120.dll是一个在Windows操作系统中至关重要的系统文件,它属于Microsoft Visual C Redistributable Package的一部分。这个动态链接库文件(DLL)包含了运行某些应用程序所必需的C运行时库函数。当某个程序在运行过程中需要调用这些预先编译…

关于制作一个Python小游戏(三)

目录 前言: 在前面我们已经了解过了关于制作pygame的使用和在里面游戏中的简单操作的内容了,今天我们主要讲的就是关于敌机的出现和如何去操控游戏中英雄飞机和敌机的出现 1.敌机的设计: 1.1敌机出场的实现: 1.1.1游戏启动后,每个一秒钟出现一架敌方飞机 1.1.2每架敌机向屏…

九章云极DataCanvas公司出席WBBA 2024宽带发展大会

2024年2月27日,由全球云网宽带产业协会(World Broadband Association, WBBA)主办的全球宽带产业盛会——宽带发展大会(Broadband Development Congress, BDC),与全球云网宽带产业合作伙伴相约巴塞罗那。九章…

【爬虫】单首音乐的爬取(附源码)

以某狗音乐为例 import requests import re import time import hashlibdef GetResponse(url):# 模拟浏览器headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0}# 发送请求…

Milvus 向量数据库实践 - 1

假定你已经安装了docker、docker-compose 环境 参考的文档如下: Milvus技术探究 - 知乎 MilvusClient() - Pymilvus v2.3.x for Milvus 一文带你入门向量数据库milvus 一、在docker上安装单机模式milvus数据库 1、 进入milvus官网: Install Milvus Stand…

LeetCode:1976. 到达目的地的方案数(spfa + 记忆化 Java)

目录 1976. 到达目的地的方案数 原题链接 题目描述: 实现代码与解析: spfa 记忆化 原理思路: 1976. 到达目的地的方案数 原题链接 1976. 到达目的地的方案数 题目描述: 你在一个城市里,城市由 n 个路口组成&a…

html 文字滚动

<marquee> 标签 创建文字滚动的标签 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>wzgd</title></head><body><marquee direction"left" height"30" width"600&q…

Qt Creator配置MSVC编译环境、调试环境

在windows上开发&#xff0c;一般使用Qt Creator自带mingw编译器&#xff0c;编译和调试都很方便&#xff0c;安装Qt时勾选后&#xff0c;自动配置完毕。 但是有时候我们需要使用MSVC的编译器&#xff0c;这个时候我们没法直接使用&#xff0c;需要配置环境才能使用&#xff0…