离线模式下载安装gcc-4.8.5

news2025/1/15 23:44:34

目录

一,下载gcc离线安装包

二,下载gcc依赖包

三,安装gcc

1,  解压

2, 将依赖库放置环境

3, 安装

3.1自动安装

3.1.1 执行依赖库的编译

3.1.2 新建编译目录     

3.1.3 配置编译环境

3.1.4 编译

3.1.5 安装

3.2  手动安装

3.2.1 安装GMP-4.3.2

3.2.2 安装mpfr

3.2.3 安装mpc  

3.2.4 编译

 3.2.5 编译

3.2.6 安装

四,配置gcc、g++ 到当前环境

4.1 先查看已有gcc或g++版本

4.2 查看gcc的软链接

4.3 软链接到新安装版本路径

4.4 由libasan.so引起的异常


一,下载gcc离线安装包

gcc官网地址:https://gcc.gnu.org/

进入官网,选择Download/Mirrors

点击 GNU FTP

拉到下方 找到 Downloading GNU software

选择gcc

找到需要下载的版本,进行下载

二,下载gcc依赖包

        安装环境无外网的情况下,需要手动下载依赖包(有网,则不需要该步骤),一般是三个依赖包:mpc,gmp,mpfr,下载地址都是从gcc官网进入,需要下载的版本是gcc安装包解压后的文件(gcc-4.8.5/contrib/download_prerequisites)中,配置的版本(要大于等于该版本)


        mpc下载地址:https://ftp.gnu.org/gnu/mpc/

        gmp下载地址:https://ftp.gnu.org/gnu/gmp/

        mpfr下载地址:https://ftp.gnu.org/gnu/mpfr/

        有的版本需要有isl依赖包,

isl下载地址:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/

三,安装gcc

1,  解压

将下载的文件拷到环境上解压

tar -zxvf gcc-4.8.5.tar.gz

2, 将依赖库放置环境

将下载好的依赖项(mpc,gmp,mpfr),放入gcc-4.8.5目录下

3, 安装

3.1自动安装

        按照依赖库的版本,将./contrib/download_prerequisites文件中信息更改,并且将(wget的下载操作注释掉),如果是有网络的情况下,可以不用手动下载依赖包,直接执行。

3.1.1 执行依赖库的编译
cd gcc-4.8.5
./contrib/download_prerequisites

3.1.2 新建编译目录     
mkdir gcc-build-4.8.5
3.1.3 配置编译环境
cd  gcc-build-4.8.5
 ../gcc-4.8.5/configure  --prefix=/usr/local/gcc-4.8.5  --enable-threads=posix  --disable-checking  --disable-multilib --enable--long-long --with-system-zlib  --enable-languages=c,c++

      参数说明:

                --prefix:不覆盖原有的gcc,自定义编译安装路径

                --enable-languages:编译出来gcc支持的语言

3.1.4 编译

        编译gcc、g++,执行后需等待较长时间。

make -j6  

3.1.5 安装

安装到配置目录下

make install

3.2  手动安装

3.2.1 安装GMP-4.3.2

  解压gmp-4.3.2后,得到源代码目录,创建一个临时编译目录temp。

$ tar -jxvf gmp-4.3.2.tar.bz2
$ cd gmp-4.3.2
$ mkdir temp
$ cd temp

        开始配置安装目录,进入temp目录后,输入以下命令:

$ ../configure --prefix=/usr/local/gmp-4.3.2
$ make
$ make install

        这样gmp就安装完成了。安装mpfr和mpc过程也差不多,只是安装的时候得加入依赖项

3.2.2 安装mpfr

  我这里选择的是2.4.2版本的mpfr。解压,建立临时编译目录temp,进入temp目录

$ tar -zxvf mpfr-2.4.2.tar.gz 
$ cd mpfr-2.4.2
$ mkdir temp
$ cd temp
$ ../configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2
$ make
$ make install 

        其中--with=/usr/local/gmp-4.3.2就是依赖项, /usr/local/gmp-4.3.2是gmp的安装目录

3.2.3 安装mpc  

        我选择的是1.0.1版本mpc.解压,建立临时编译目录temp,进入temp目录.

$ tar -zxvf mpc-1.0.1.tar.gz
$ cd mpc-1.0.1
$ mkdir temp
$ cd temp
$ ../configure --prefix=/usr/local/mpc-1.0.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2
$ make
$ make install

        记得后面两项的依赖项,也就是你的gmp和mpfr的安装目录

3.2.4 编译
$ mkdir gcc-build-4.8.5
$ cd gcc-build-4.8.5
$ /usr/local/gcc-4.8.5/configure --prefix=/usr/local/gcc-4.8.5 --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-1.0.1

记得加上后面三个依赖项,否则会出刚开始出现的错误的。

 3.2.5 编译

        编译gcc、g++,执行后需等待较长时间。

make -j6  

3.2.6 安装

安装到配置目录下

make install

四,配置gcc、g++ 到当前环境

4.1 先查看已有gcc或g++版本

which gcc

gcc --version

4.2 查看gcc的软链接

cd /usr/bin/
ls -l gcc*

        则系统实际使用的gcc路径  /usr/bin/gcc-4.8.2

4.3 软链接到新安装版本路径

修改gcc、g++ 软链接到新安装版本路径

 ln -snf  /usr/local/gcc-4.8.5/bin/gcc   /usr/bin/gcc
 ln -snf  /usr/local/gcc-4.8.5/bin/g++   /usr/bin/g++

4.4 由libasan.so引起的异常

 错误信息:

undefined reference to '_asan_init_v4' 是由于gcc编译器版本中的库引入不对

发现环境引用的libasan.so库并不是我们安装gcc版本中的库

进入错误日志中库的目录:/usr/lib/gcc/x86_64-redhat-linux/4.8.5

将libasan_preinit.o和libasan.so 备份之后,建立软连接

mv libasan_preinit.o bak_libasan_preinit.o.240425
mv libasan.so bak_libasan.so.240425

In -snf /usr/local/gcc-4.8.5/lib64/libasan_preinit.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libasan_preinit.o
In -snf /usr/local/gcc-4.8.5/lib64/libasan.so /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libasan.so

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

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

相关文章

扫码怎样上传现场照片或视频?快速提交现场记录的方法

现在很多应用场景会使用二维码来登记信息,通过手机扫描二维码即可根据问题填写对应的数据,比如在活动签到、预约报名、巡视检查、用户调研等场景现在都会采用这种方式来登记信息。有些时候需要扫码者在填写数据时上传现场相关照片或者视频来作为证明&…

Unity Meta Quest MR 开发(七):使用 Stencil Test 模板测试制作可以在虚拟与现实之间穿梭的 MR 传送门

文章目录 📕教程说明📕Stencil Test 模板测试📕Stencil Shader📕使用 Unity URP 渲染管线设置模板测试⭐Render Pipeline Asset 与 Universal Renderer Data⭐删除场景中的天空盒⭐设置虚拟世界的层级 Layer⭐设置模板测试 &#…

FreeRTOS:3.消息队列

FreeRTOS消息队列 本文主要基于消息队列的源码进行分析,来对FreeRTOS的消息队列进一步学习。 消息队列非常重要,因为后面的各种信号量基本都是基于队列的,搞清楚消息队列的源码,也就搞清楚消息队列的原理。 参考链接&#xff1…

Linux命令行基本操作

目录 (1)实验目的: (2)实验内容: (3)实验原理: (4) 实验步骤: 1.分别创建两个文件并任意输入不同的英文内容(文件名用自己的姓名拼音与编号命名,如zhangsan01、zhangsan02)。 2.将上题两个文件合并&a…

【Hadoop】-HDFS的Shell操作[3]

目录 前言 一、HDFS集群启停命令 1.一键启停脚本可用 2.独立进程启停可用 二、文件系统操作命令 1、创建文件夹 2、查看指定目录下内容 3、上传文件到HDFS指定目录下 4、查看HDFS文件内容 5、下载HDFS文件 6、拷贝HDFS文件 7、追加数据到HDFS文件中 8、HDFS数据移…

统一SQL 支持Oracle decode函数到TDSQL-MySQL的转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:TDSQL-MySQL 操作目标 在Oracle中,decode函数语法如下图:该函数功能是将 expr与每个 search 依次做比较&#x…

【学习】应急响应

知识体系 事件前 事件后 导致安全事件的原因 part2 事件的分级分类 part3 应急响应工作流程

springboot_java_Ssm高校网上教材征订系统

SpinrgBoot的主要优点有: 1、为所有spring开发提供了一个更快、更广泛的入门体验; 2、零配置; 3、集成了大量常用的第三方库的配置; 4、提供准备好的特性。当今,java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐…

SSRF—服务器请求伪造 漏洞详解

漏洞简述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务,其影响效果根据服务器用的函数不同,从而造成不同的影响。 SSRF 形成的原因…

临时邮箱API有哪些功能特性?如何选择API?

临时邮箱API的安全性如何保障?电子邮箱API操作指南? 对于很多用户而言,临时邮箱API不仅仅是一个简单的工具,更是一个保护隐私、避免垃圾邮件侵扰的得力助手。那么,临时邮箱API究竟具备哪些功能特性呢?接下…

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

深度学习实践指南:打造强大AI应用的关键步骤和技巧

深度学习发展总图 深度学习发展总图 深度学习(deep learning)发展史 - 知乎 不同的神经元模型 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09; 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09;是模仿…

《深入解析windows操作系统》第1章读书笔记

1、服务&#xff1a;指操作系统中可以被调用的例程&#xff08;即函数&#xff0c;等价于系统调用&#xff1f;&#xff09;、设备驱动程序或者服务器进程。一些特定术语如下&#xff1a; 1&#xff09;Windows API函数&#xff1a;指Windows API中已经被文档化、可被调用的子例…

基层设备人如何开展TPM:从理念到实践的深度心得

在制造业的基层工作中&#xff0c;设备维护与管理如同稳固的基石&#xff0c;为生产流程的顺畅运作提供了坚实的保障。TPM&#xff0c;这一全面生产维护的理念&#xff0c;已在众多企业中落地生根&#xff0c;成为提升设备效能和企业竞争力的有力工具。那么&#xff0c;作为基层…

学习操作系统路线

操作系统 简介 本课程为计算机专业学生量身定制&#xff0c;补足计算机操作系统相关知识&#xff0c;查漏补缺&#xff0c;也可用于考研复习。内容包括&#xff1a;操作统概述、进程管理、内存管理、文件管理、输入/输出管理等章节。内容力求精炼、重点突出、条理清晰、深入浅…

【ruoyi-vue】axios的封装理解和基本使用

axios的配置 ruoyi的前端对axios进行了封装&#xff0c;让我们发get请求或者是post请求更加方便了。 ruoyi对axios的封装在下面文件中&#xff1a;打开文件&#xff0c;可以看到它有三个显眼的方法&#xff0c;分别是request拦截器、response拦截器和通用下载方法。ruoYi接口地…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对&#xff0c;我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示&#xff0c;第五行开始进行第一次…

Multitouch 1.27.28 免激活版 mac电脑多点触控手势增强工具

Multitouch 应用程序可让您将自定义操作绑定到特定的魔术触控板或鼠标手势。例如&#xff0c;三指单击可以执行粘贴。通过执行键盘快捷键、控制浏览器的选项卡、单击鼠标中键等来改进您的工作流程。 Multitouch 1.27.28 免激活版下载 强大的手势引擎 精心打造的触控板和 Magic …

js 模拟鼠标移动事件,并监听鼠标移动

代码实现 function simulateClick( x, y) {// 获取目标元素 const element document.querySelector("xxxxx"); // 创建一个鼠标移动事件 var mouseMoveEvent new MouseEvent(mousemove, {screenX: x window.screenX, screenY: y window.screenY, clientX: x,…

使用gdb调试遇到No symbol table is loaded. Use the “file“ command.怎么办?

问题排查 出现下面问题&#xff0c;通常是没有处于调式模式环境下&#xff0c;所以我们需要在gcc指令后加 【-g】。 因为&#xff0c;我么的gcc编辑器默认是动态链接&#xff0c;而且是realese发布版本。 想要解决也很简单 主要思路就是在gcc -g。 在makefile文件如下进行修改即…