在Ubuntu系统上手动安装GCC环境
Ubuntu系统是自带GCC安装指令的apt install gcc,当前apt源中gcc版本为5.4.0,版本太低,推荐手动安装gcc8.3.0
手动安装gcc8.3.0之前需要先确保安装gcc环境依赖GMP 4.2+ 、 MPFR 2.3.1+ 、 MPC 0.8.0+,否则会报出以下错误
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.
安装GMP 6.1.2
#下载GMP安装包
wget http://mirror.hust.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
#解压GMP安装包
tar -Jxf gmp-6.1.2.tar.xz
#创建GMP安装路径
mkdir -p /usr/local/gmp-6.1.2
#配置安装文件
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
#编译源码
make
#安装
make install
安装MPFR4.0.2
#下载MPFR 安装包
wget http://mirror.hust.edu.cn/gnu/mpfr/mpfr-4.0.2.tar.xz
#解压MPFR安装包
tar -Jxf mpfr-4.0.2.tar.xz
#创建MPFR安装路径
mkdir -p /usr/local/mpfr-4.0.2
#配置安装文件
cd mpfr-4.0.2
./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2
#编译源码
make
#安装
make install
安装MPC1.1.0
#下载MPC 安装包
wget http://mirror.hust.edu.cn/gnu/mpc/mpc-1.1.0.tar.gz
#解压MPC安装包
tar -zxf mpc-1.1.0.tar.gz
#创建MPC安装路径
mkdir -p /usr/local/mpc-1.1.0
#配置安装文件
cd mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2
#编译源码
make
#安装
make install
上述全部安装完成后,安装GCC8.3.0
#下载gcc安装包
wget mirror.hust.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz
#解压gcc安装包
tar -zxf gcc-8.3.0.tar.gz
#创建gcc安装路径
mkdir -p /usr/local/gcc-8.3.0
#配置安装文件
cd gcc-8.3.0
#后面的--with-gmp, --with-mpfr and/or --with-mpc选项一定要是相应安装的路径,否则会报出和上边同样的错误
./configure --prefix=/usr/local/gcc-8.3.0 --disable-multilib --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --with-mpc=/usr/local/mpc-1.1.0
#编译
make
#make完成后,make install
make install
ln -s /usr/local/gcc-8.3.0 /usr/local/gcc
# 配置环境变量
export PATH=/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/lib64:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib:$LD_LIBRARY_PATH
export MANPATH=/usr/local/gcc/share/man:$MANPATH
# 查看gcc版本,判断gcc是否安装成功
gcc --version
如果在安装gcc的make过程中报错“error: C++ preprocessor "/lib/cpp" fails sanity check”,是因为缺少C++必要的库,执行安装apt-get install build-essential。然后make clean后再make即可。
make 过程需要3个小时左右,make install过程需要一个小时左右,安心等待即可
在Ubuntu系统上手动安装GCC环境的更多相关文章
- 十分钟内在Ubuntu系统上搭建Mono开发环境(Mono软件Ubuntu系统国内镜像源、Mono国内镜像源)
Mono软件Ubuntu系统国内镜像源.Mono国内镜像源 http://download.githall.cn/repo 替换为国内源(非官方)有利于加快mono的安装速度,一般情况下,完成mono ...
- ubuntu系统下手动安装autoconf安装包
首先简单介绍一下autoconf.Autoconf是一个可以适应多种unix类系统的shell脚本的工具. 我在往虚拟机中安装应用时,需要用到该工具,于是想下载一个.但是由于系统内核版本低,已不能用a ...
- ubuntu系统下怎么安装gcc编译器
你安装一个名字叫做build-essential的软件包,就可以一次将编译器.make工具.所有的编程头文件.函数库等东东全部安装上,其中也包括gcc编译器,这是非常稳妥的安装方式,安装命令是用roo ...
- 解决django项目在ubuntu系统上无法安装mysqlclient
首先我的项目是django2.0,python环境是3.5. 我们在本地开发完django项目了,在本地运行是成功的,然后我们把django项目放到服务器上,运行的时候就出错了. 如图: 我们都知道, ...
- mongodb 在 Ubuntu系统上的安装及卸载
mongodb官网 The mongodb-org-server package provides an initialization script that starts mongod with t ...
- 在64位Ubuntu系统上安装32位程序包
在64位Ubuntu系统上安装32位的程序包 $sudo apt-get install package_name:i386 例如: $sudo apt-get install openjdk-7-j ...
- Nginx: ubuntu系统上如何判断是否安装了Nginx?
问题描述:ubuntu系统上,如何查看是否安装了Nginx? 解决方法:输入命令行:ps -ef | grep nginx master process后面就是Nginx的安装目录. 延伸:1. 如何 ...
- 最新版 Harbor 在ubuntu系统上安装
最新版 Harbor 在ubuntu系统上安装 The latest version of Harbor is installed on the ubuntu system 安装docker Inst ...
- 在ubuntu机器上部署php测试环境
在ubuntu机器上部署php测试环境 一.部署环境 Ubuntu11.10_X86_32,编译安装相应的软件:nginx+mysql+php. 二.软件安装 2.1 软件下载 libiconv-1. ...
- 在Ubuntu系统上搭建Hadoop 2.x(2.6.2)
官方的中文版的Hadoop快速入门教程已经是很老的版本了,新版的Hadoop目录结构发生了变化,因此一些配置文件的位置也略微调整了,例如新版的hadoop中找不到快速入门中提到的conf目录,另外,网 ...
随机推荐
- C# Webapi Filter 过滤器 - 生命周期钩子函数 - Action Filter 基础
ACTION Filter IAsyncACtionFilter 接口 : 1.注入ActionFilter // 注册过滤器 builder.Services.Configure<MvcOpt ...
- Promise 有几种状态,什么时候会进入catch?
Promise 有几种状态 三个状态:pending.fulfilled.reject 两个过程:padding -> fulfilled.padding -> rejected Prom ...
- PCI-5565反射内存卡
PCI-5565反射内存卡是一种用于实时网络的硬件设备.它基于反射内存网的原理,通过光纤连接多台计算机,形成网络节点,并且每个节点上的网络内存卡存储着其他节点的共享数据拷贝.该反射内存卡可以插在多种总 ...
- 循环程序结构设计(python)
文章目录 1.基本概念 2.for循环 2.1 for循环基本结构 2.2 实例介绍 2.2.1 循环输出字符 2.2.2循环输出2000以内的素数 3.whlie循环 3.1 while循环基本结构 ...
- 出现负载均衡问题IP端口不通的紧急处理
出现负载均衡IP不能用的处理方案,重启这个服务. 命令: systemctl stop keepalived systemctl start keepalived
- 研发LLM模型,如何用数值表示人类自然语言?
上一篇:<人工智能--自然语言处理简介> 序言:人工智能大语言模型(LLM)如何理解人类的自然语言?这个过程的核心在于将文本转化为计算机能处理的数值形式,经过计算,最终达到对语言的理解.起 ...
- java api 接口 postman @RequestBody
首先解释一下注解 @RequestBody @RequestBody标记的参数接受的是一个json格式的字符串,一定是一个字符串. 举个例子 这里参数 entryingEntity 如果调用api 如 ...
- 如何在原生鸿蒙中进行RN热加载
一.背景 在上一篇博客中,我分享了将RN的bundle包在原生鸿蒙开发中进行使用.但是如果我们在实际的开发过程中,每次修改完代码都需要打包,然后重新运行原生项目的话效率就有点太低了. 原生鸿蒙支持RN ...
- fork父子进程执行顺序
使用一段代码来检查父子进程执行顺序 <?php $str = "hello world!" . PHP_EOL; // 派生一个子进程,子进程会复制主进程中的上下文 // p ...
- .NET Core 线程(Thread)底层原理浅谈
简介 线程,进程,协程基本概念不再赘述. 原生线程和用户线程 原生线程 在内核态中创建的线程,只服务于内核态 用户线程 由User Application创建的线程,该线程会在内核态与用户态中间来回穿 ...