Centos升级gcc版本

步骤1:查看当前服务器gcc版本

gcc –version

步骤2:查看当前gcc安装目录

find / -name gcc

cd /usr/bin

ll gcc*

因为gcc,g++,c++都是配套的,查找出 g++和c++的原版本位置

步骤3:安装下载依赖包

yum install glibc-headers gcc-c++  gcc gmp  gmp-devel  mpfr  mpfr-devel  libmpc  libmpc-devel

yum install libffi-devel

./contrib/download_prerequisites

步骤4:安装依赖包

cd /*自己的目录*/gcc-11.4.0/mpfr-3.1.6

./configure --prefix=/usr/local/ mpfr-3.1.6

make

make install

cd /*自己的目录*/gcc-11.4.0/mpc-1.0.3

./configure --prefix=/usr/local/ mpc-1.0.3

make

make install

cd /*自己的目录*/gcc-11.4.0/gmp-6.1.0

./configure --prefix=/usr/local/ gmp-6.1.0

make

make install

cd /*自己的目录*/gcc-11.4.0/isl-0.18

./configure --prefix=/usr/local/ isl-0.18

make

make install

修改环境变量vim ~/.bashrc,添加如下

export LD_LIBRARY_PATH=:$LD_LIBRARY_PATH:/usr/local/mpc-1.0.3/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-6.0.1/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpfr-3.1.6/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/isl-0.18/lib

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/

使环境变量生效   source  ~/.bashrc

步骤5:安装gcc

进入目录/*自己的目录*/gcc-11.4.0/,新建build文件夹,进入该文件夹,执行以下命令

../configure --prefix=/usr/local/gcc-11.4.0 --with-gmp=/usr/local/gmp-6.0.1/ --with-mpfr=/usr/local/mpfr-3.1.6/ --with-mpc=/usr/local/mpc-1.0.3/ --with-isl=/usr/local/isl-0.18 --with-system-zlib --disable-multilib

再执行如下命令:

make

make install

成功后如下图所示:

修改环境变量~/.bashrc,添加如下

使环境变量生效  ~/.bashrc

步骤6:更新gcc软连接

cd /usr/bin

更新gcc

mv gcc gcc.bak

ln -s /usr/local/gcc-11.4.0/bin/gcc /usr/bin/gcc

更新g++

mv g++ g++.bak

ln -s /usr/local/gcc-11.4.0/bin/g++ /usr/bin/g++

更新c++

mv c++ c++.bak

ln -s /usr/local/gcc-11.4.0/bin/c++ /usr/bin/c++

更新libstdc++.so.6

cd /usr/lib64/

cp /usr/local/gcc-11.4.0/lib64/libstdc++.so.6.0.29 /usr/lib64/

mv libstdc++.so.6 libstdc++.so.6.bak

ln -s /usr/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

步骤7:测试新版本gcc

最后:出错解决方式

出错:gcc configure: error: C compiler cannot create executables

解决:查找日志Config.log,在里面搜索error,定位到问题

问题:error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

解决:[student2@node01 ~]$ locate libmpc.so.2

/opt/software/mpc-0.8.1/lib/libmpc.so.2

/opt/software/mpc-0.8.1/lib/libmpc.so.2.0.0

将export LD_LIBRARY_PATH=/opt/software/mpc-0.8.1/lib/:$LD_LIBRARY_PATH 添加到环境变量~/.bashrc,执行source  ~/.bashrc使环境变量生效

问题:locate: command not found

解决:yum  -y install mlocate

问题:locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

解决:updatedb

问题

解决:在环境变量中添加export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/

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

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

相关文章

yolov8 opencv dnn部署 github代码

源码地址 本人使用的opencv c github代码,代码作者非本人 实现推理源码中作者的yolov8s.onnx 推理条件 windows 10 Visual Studio 2019 Nvidia GeForce GTX 1070 opencv4.7.0 (opencv4.5.5在别的地方看到不支持yolov8的推理,所以只使用opencv4.7.0) c部署 环境…

标量、向量、矩阵和张量的区别?

标量、向量、矩阵和张量是数学和物理学中常用的概念,它们在多维数据表示和处理中扮演着关键角色。下面是这些概念的基本区别: 标量(Scalar): -标量是单个数字,用于表示单一的量。 -它没有方向。 -在数学中&#xff0…

竞赛保研 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

Maven《四》-- 基于Idea进行Maven工程构建

目录 🐶4.1 构建概念和构建过程 🐶4.2 命令方式项目构建 1. 🥙编译:mvn compile 2. 🥙清理:mvn clean 3. 🥙打包:mvn package 4. 🥙安装:mvn install …

泰迪科技最新大数据法律监督模型解决方案

大数据法律监督平台是基于监督数据整合管理平台、监督模型构建平台、内置模型库以及法律监督线索管理平台打造的一套服务于检察机关法律监督工作的专业化系统。通过数据采集、融合、挖掘、建模、展现等一系列能力,辅助检察官从纷繁复杂的数据中,开展多维…

java遍历(for和forEach)

1.dade文件 package model;public class dade {private int id;private String name;public dade() {}public dade(int id, String name) {this.id id;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {r…

unity3d在汽车领域的未来发展趋势浅谈

Unity3D在汽车领域的未来发展趋势可以从以下几个方面深入分析: 增强现实(AR)与虚拟现实(VR)的融合:随着AR和VR技术的不断发展,未来Unity3D将在汽车领域中实现AR和VR技术的融合。通过这种融合&a…

Java中的内存溢出与内存泄漏深度解析

目录 引言 一. 内存溢出(Memory Overflow) 1.1 堆内存溢出 1.2 栈内存溢出 1.3 内存溢出的解决策略 1.3.1 优化对象的创建和销毁 1.3.2 调整堆内存大小 1.3.3 使用内存分析工具 1.3.4 避免创建过大的对象 1.3.5 定期清理不再使用的对象 二、…

使用docker以容器方式安装redis

文章目录 获取redis镜像查看本地镜像从官网获取 redis.conf 配置文件创建并启动redis容器 获取redis镜像 docker pull redis #默认获取redis:latest,即最新的镜像 查看本地镜像 docker images 从官网获取 redis.conf 配置文件 创建并进入目录 [rootVM-16-11-ce…

如何快速上手Vue框架

快速上手Vue框架可以遵循以下步骤。Vue是一个渐进式JavaScript框架,因其易学和灵活而受到许多开发者的欢迎。 1. 基础知识 在开始学习Vue之前,确保你具备以下基础知识: HTML、CSS和JavaScript:Vue是一个JavaScript框架&#xf…

C++ Webserver从零开始:基础知识(五)——信号

Linux信号概述 Linux系统中,信号是一种通信的方式,其通常用作用户,系统或进程给目标进程发送的信息。 信号的作用:通知目标进程某个状态的改变或系统异常。 产生的条件: 对于终端程序:可以是用户输入的…

Python中的函数(二)

1 闭包与装饰器 1.1 闭包 闭包(Closure)是指在一个函数内部定义的函数,并且该内部函数可以访问外部函数作用域中的变量。闭包可以在外部函数执行完毕后,仍然保持对外部函数作用域的引用,从而可以继续访问和操作外部函…

【Java】--网络编程:基于TCP协议的网络通信

【Java】–网络编程:基于TCP协议的网络通信 文章目录 【Java】--网络编程:基于TCP协议的网络通信一、TCP协议1.1 概念1.2 三次握手1.2.1 文字描述1.2.2 画图演示 1.3 四次挥手1.3.1 文字描述1.3.2 画图演示 二、基于TCP的Socket网络编程2.1 概念2.2 服务…

Kafka-服务端-网络层

Reactor模式 Kafka网络层采用的是Reactor模式,是一种基于事件驱动的模式。熟悉Java编程应该了解JavaNIO提供了实现Reactor模式的API。常见的单线程Java NIO的编程模式如图所示。 为了满足高并发的需求,也为了充分利用服务器的资源,服务端需要…

Selenium 自动化截取网页指定区域截图

一. 需求 在本篇博客中,我将分享一段使用Python编写的自动化网页截图代码,该代码基于Selenium和PIL库,可用于截取网页中指定区域的截图。这样的功能对于需要定期监控特定网页内容或进行网页数据采集的任务非常有用。 二. 代码解析 首先&am…

中间件存储设计 - 数组与链表

文章目录 数组ArrayListLinkedListHashMap小结 中间件主要包括如下三方面的基础:数据结构、JUC 和 Netty,接下来,我们先讲数据结构。 数据结构主要解决的是数据的存储方式问题,是程序设计的基座。 按照重要性和复杂程度&#xf…

Python fork方法:创建新进程

除可以进行多线程编程之外,Python 还支持使用多进程来实现并发编程。 Python 的 os 模块提供了一个 fork() 方法,该方法可以 fork 出来一个子进程。简单来说,fork() 方法的作用在于,程序会启动两个进程(一个是父进程&…

《WebKit 技术内幕》学习之十(1): 插件与JavaScript扩展

虽然目前的浏览器的功能很强 ,但仍然有其局限性。早期的浏览器能力十分有限,Web前端开发者希望能够通过一定的机制来扩展浏览器的能力。早期的方法就是插件机制,现在流行次啊用混合编程(Hybird Programming)模式。插件…

大模型实战营 Day5作业

基础作业: 使用 LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署 InternLM-Chat-7B 模型,生成 300 字的小故事(需截图) TurboMind 推理命令行本地对话 lmdeploy chat turbomind /share/temp/model_repos/internlm-cha…

RK3568平台 TinyAlsa集成第三方音频算法

一.tinyalsa介绍 ALSA(Advanced Linux Sound Architecture)是一个开源项目,涵盖了用户空间和内核空间对音频设备的操作接口,通过应用层使用alsalib可以实现对音频设备的控制 TinyAlsa是android推出的一个精简的ALSA库&#xff0c…