Ubuntu14.04离线安装gcc-5.3.0
离线安装gcc
- 下载gcc安装包
- 下载相关依赖
- 下载gmp
- 下载mpfr
- 下载mpc
- 编译、安装gcc
- 配置环境变量
拉取的一个虚拟机使用的系统是Ubuntu14.04,gcc版本是4.8.4,由于gcc版本较低,不太支持Libtorch,于是搜寻了许多办法来解决这个问题,以下是最终的解决方法。
下载gcc安装包
首先去相应网站下载gcc的安装包,这里提供一个网站http://www.netgull.com/gcc/releases/,进入该网站后找到想下载的gcc版本,比如我要下载的是gcc-5.3.0,于是点击gcc-5.3.0这个目录,进入后会发现目录中有两个安装包gcc-5.3.0.tar.bz2和gcc-5.3.0.tar.gz,这两个安装包都差不多,下载哪个都行,我下载的是gcc-5.3.0.tar.bz2。
在/home目录下,通过mkdir gcc-build && cd gcc-build命令创建一个gcc-build目录,并进入到该目录。将下载的gcc-5.3.0.tar.bz2移入gcc-build目录并进行解压:
tar -xjvf gcc-5.3.0.tar.bz2
解压后生成一个gcc-5.3.0目录。
下载相关依赖
编译gcc源码时需要安装gmp、mpfr、mpc三个依赖,我们依次进行下载。
下载gmp
首先进入https://mirrors.ustc.edu.cn/ubuntu/pool/main/g/gmp/,然后选择gmp_6.1.0+dfsg.orig.tar.xz进行下载。
将下载好的gmp_6.1.0+dfsg.orig.tar.xz放在gcc-build目录下,通过tar -xf gmp_6.1.0+dfsg.orig.tar.xz命令进行解压,解压后生成gmp_6.1.0+dfsg,同时在gcc-build目录中创建一个temp目录用来编译。
打开终端进入temp目录,依次输入以下命令:
../gmp-6.1.0+dfsg/configure -prefix=/usr/local/gmp-6.1.0+dfsg
make
sudo make install
下载mpfr
进入https://mirrors.ustc.edu.cn/ubuntu/pool/main/m/mpfr4/,选择mpfr4_3.1.4.orig.tar.xz进行下载。
将下载好的mpfr4_3.1.4.orig.tar.xz放在gcc-build目录下并进行解压,然后依次输入以下命令:
rm -r * # 清空temp目录
../mpfr-3.1.4/configure -prefix=/usr/local/mpfr-3.1.4 -with-gmp=/usr/local/gmp-6.1.0+dfsg # 安装mpfr时需要添加依赖关系
make
sudo make install
下载mpc
进入https://mirrors.ustc.edu.cn/ubuntu/pool/main/m/mpclib3/,选择mpclib3_1.0.3.orig.tar.gz进行下载。
将下载好的mpclib3_1.0.3.orig.tar.gz放在gcc-build目录下并进行解压,然后依次输入以下命令:
rm -r * # 清空temp目录
../mpc-1.0.3/configure -prefix=/usr/local/mpc-1.0.3 -with-gmp=/usr/local/gmp-6.1.0+dfsg -with-mpfr=/usr/local/mpfr-3.1.4 # 安装mpc时需要添加依赖关系
make
sudo make install
编译、安装gcc
rm -r * # 清空temp目录
../gcc-5.3.0/configure -prefix=/usr/local/gcc-5.3.0 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++,java,objc -with-gmp=/usr/local/gmp-6.1.0+dfsg -with-mpfr=/usr/local/mpfr-3.1.4 -with-mpc=/usr/local/mpc-1.0.3
make # 这一步需要的时间会比较长
sudo make install
配置环境变量
此时系统存在两个版本的gcc,一个位于/usr/bin/gcc,另一个位于/usr/local/gcc-5.3.0/bin/gcc,输入gcc --version时显示的仍然是旧版本的信息,为了方便使用,我们可以在/usr/bin目录下建立符号链接。
cd /usr/bin
sudo ln -s /usr/local/gcc-5.3.0/bin/gcc gcc53
sudo ln -s /usr/local/gcc-5.3.0/bin/g++ g++53
此时,在/usr/bin目录下会分别多出一个gcc53和g++53可执行文件,当输入gcc53 --version时显示的就是新版本的信息了。
如果想输入gcc --version就显示新版本的信息,我们可以依次输入以下命令:
sudo cp /usr/bin/gcc /usr/bin/gcc4.8.4 # 备份原来的gcc链接
sudo cp /usr/bin/g++ /usr/bin/g++4.8.4 # 备份原来的g++链接
sudo rm /usr/bin/gcc # 删除原来的gcc链接
sudo rm /usr/bin/g++ # 删除原来的g++链接
sudo ln -s /usr/local/gcc-5.3.0/bin/gcc /usr/bin/gcc # 建立新的gcc链接
sudo ln -s /usr/local/gcc-5.3.0/bin/g++ /usr/bin/g++ # 建立新的g++链接
此时再输入gcc --version,显示的就是新版本信息。
对于库的路径同样需要设置一下,这样保证在调用库函数的时候可以适用到新版编译器的库函数,通过sudo vim /etc/profile命令打开文件,添加如下内容:
export LD_LIBRARY_PATH=/usr/local/gcc-5.3.0/lib:/usr/local/gcc-5.3.0/lib64:$LD_LIBRARY_PATH
保存退出后,重新启动系统,使变量生效。
至此,gcc-5.3.0的安装工作全部完成!
相关文章:
Ubuntu14.04离线安装gcc-5.3.0
离线安装gcc 下载gcc安装包下载相关依赖下载gmp下载mpfr下载mpc 编译、安装gcc配置环境变量 拉取的一个虚拟机使用的系统是Ubuntu14.04,gcc版本是4.8.4,由于gcc版本较低,不太支持Libtorch,于是搜寻了许多办法来解决这个问题&#…...
axios返回几种数据格式? 其中Blob返回时的size是什么意思?
axios返回几种数据格式? 其中Blob返回时的size是什么意思? 1、字符串(String):服务器可以返回纯文本或HTML内容,Axios会将其作为字符串返回。 2、JSON(JavaScript Object Notation)ÿ…...
【GO语言基础】基本数据类型
系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录数据类型数值型:整数类型:浮点数类型: 字符型-布尔型-字符串零值转义字符 常用类型转换运算符总结 数据…...
【Python】OpenCV立体相机配准与三角化代码实现
下面的介绍了使用python和OpenCV对两个相机进行标定、配准,同时实现人体关键点三角化的过程 import cv2 as cv import glob import numpy as np import matplotlib.pyplot as pltdef calibrate_camera(images_folder):images_names = glob.glob(images_folder...
通过Idea或命令将本地项目上传至git
通过Idea或命令将本地项目上传至git 一、Git创建仓库 1、登录Gitee账号,点击新建 2、填写如下相关信息,点击创建 3、在此处可以复制项目链接 二、Idea配置和解绑git,提交项目 1、idea打开项目,操作如下 2、在弹框里选择…...
python selenium 爬虫教程
Python和Selenium是很强大的爬虫工具,可以用于自动化地模拟浏览器行为,从网页中提取数据。下面是一个简单的使用Python和Selenium进行爬虫的案例。 入门: 1. 安装和配置: 首先,你需要安装Python和Selenium。可以使用…...
Linux基础知识及常见指令
Linux简介及相关概念 什么是Linux? Linux是一个免费开源的操作系统内核,最初由Linus Torvalds于1991年创建。它是各种Linux发行版(通常称为“发行版”)的核心组件,这些发行版是完整的操作系统,包括Linux内…...
分享一个基于Python和Django的产品销售收入数据分析系统源码
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…...
UniTask保姆级教程
目录 一、UniTask的简介和安装 https://github.com/Cysharp/UniTask.gitpathsrc/UniTask/Assets/Plugins/UniTask 空载性能测试 二、基础用法详解 三、基础用法扩展 四、进阶 五、VContainer简介 六、VContainer基础实例 方便快速查找 一、UniTask的简介和安装 项目地…...
uni-app 可视化创建的项目 移动端安装调试插件vconsole
可视化创建的项目,在插件市场找不到vconsole插件了。 又不好npm install vconsole 换个思路,先创建一个cli脚手架脚手架的uni-app项目,然后再此项目上安装vconsole cli脚手架创建uni-app项目 安装插件 项目Terminal运行命令:npm…...
HOperatorSet.GenRandomRegions 有内存泄漏或缓存,释放不掉
开发环境 VS2022 win7 halcon12 halcon18 随机生成100个园 不释放 private void butTemp_Click(object sender, EventArgs e) { butTemp.Enabled false; HOperatorSet.SetSystem("clip_region", "false"); …...
一维数组笔试题及其解析
Lei宝啊 :个人主页 愿所有美好不期而遇 前言: 数组名在寻常情况下表示首元素地址,但有两种情况例外: 1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小 2.&数组名,这里的…...
微信小程序源码
1:仿豆瓣电影微信小程序 https://github.com/zce/weapp-demo 2:微信小程序移动端商城 https://github.com/liuxuanqiang/wechat-weapp-mall 3:Gank微信小程序 https://github.com/lypeer/wechat-weapp-gank 4:微信小程序高仿QQ…...
Browserslist 信息和配置使用整理
我们可以在各种前端工程看到 Browserslist 的配置身影,看似简单但实际上可能会有暗坑导致线上兼容问题,借此文来整理下 Browserslist 的信息。 Browserslist 是由 Autoprefixer 团队维护的一个开源项目,用于自动处理 CSS 和 JavaScript 文件…...
Matlab 如何选择采样频率和信号长度
Matlab 如何选择采样频率和信号长度 1、概述 在实际信号分析中经常会遇到要分辨出频率间隔为 的两个分量,在这种情形中如何选择采样频率和信号的长度呢? 2、案例分析 设有一个信号由三个正弦信号组成,其频率分别为 ,即…...
TPTU: Task Planning and Tool Usage of Large Language Model-based AI Agents
本文是LLM系列文章,针对《TPTU: Task Planning and Tool Usage of Large Language Model-based AI Agents》的翻译。 TPTU:任务规划和工具使用的LLM Agents 摘要1 引言2 方法3 评估4 相关工作5 结论 摘要 随着自然语言处理的最新进展,大型语言模型&…...
【Spring IoC容器的加载过程】
加载配置文件 Spring IoC容器的配置通常以XML形式存储,并通过ResourceLoader和XmlBeanDefinitionReader类来加载。ResourceLoader主要负责加载Bean配置文件,而XmlBeanDefinitionReader则负责解析这些文件,将Bean定义封装为BeanDefinition对象…...
C++多文件类的声明与实现
...
16 “count(*)“ 和 “count(1)“ 和 “count(field1)“ 的差异
前言 经常会有面试题看到这样的问题 “ select count(*) ”, “ select count(field1) ”, “ select count(1) ” 的效率差异啥的 然后 我们这里 就来探索一下 这个问题 我们这里从比较复杂的 select count(field1) 开始看, 因为 较为复杂的处理过程 会留一下一些关键的调试…...
【云原生进阶之PaaS中间件】第一章Redis-1.4过期策略
1 设置带过期时间的 key # 时间复杂度:O(1),最常用方式 expire key seconds# 字符串独有方式 setex(String key, int seconds, String value)除了string独有设置过期时间的方法,其他类型都需依靠expire方法设置时间&a…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
