其他分享
首页 > 其他分享> > Debian 10.12编译安装GCC7.4.0 教程 -理论通用版

Debian 10.12编译安装GCC7.4.0 教程 -理论通用版

作者:互联网

教程环境

系统为:Debian10.12,其他操作系统大同小异,只是在包管理器命令以及包名上有微小差异

安装方式为:最小化安装

本教程全程使用root用户操作

GCC源码准备

阿里镜像源地址:https://mirrors.aliyun.com/gnu/

GCC阿里云镜像地址:https://mirrors.aliyun.com/gnu/gcc/

大学镜像:

http://mirror.hust.edu.cn/gnu/gcc/
http://mirrors.nju.edu.cn/gnu/gcc/
http://mirrors.ustc.edu.cn/gnu/gcc/
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/

选择你要的GCC版本版本,下载后会得到一个压缩包,解压并进入解压文件夹

apt-get install -y wget
wget https://mirrors.aliyun.com/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz
#gz文件
tar -zxvf gcc-7.4.0.tar.gz
#xz文件
tar -jxvf gcc-7.4.0.tar.xz

编译环境准备

更新源(非更新软件)

apt-get update

安装gcc环境:编译gcc需要gcc环境,编译好后会覆盖之前装的版本,可用于安装指定版本的gcc或者升级/降级gcc

apt-get install -y gcc g++

安装make编译工具环境以及依赖

apt-get install -y automake autoconf libtool make

补充:build-essential 包是C语言的开发包,包含了gcc、make、gdb和libc函数库等很多工具,后面学习JVM虚拟机的时候看到的,前面出问题可以选择安装这个包

GCC依赖环境安装

方式一

最简单的解决方案是使用download_prerequisites脚本将GMP,MPFR,MPC和ISL源代码添加到GCC源代码树,这将导致GCC自动为您构建它们,并静态链接到它们。

在gcc解压后的文件夹内输入

./contrib/download_prerequisites

gcc自带脚本会解决所有依赖,包括下载、配置、连接等。如果你这一步非常顺利,最后屏幕输出

All prerequisites downloaded successfully.则说明配置完成。

但如果中途出了什么问题,请自行百度,因为我输入这条命令后半天一点动静都没有,科学也好,换源也好,都没用。

方式二

根据方式一中的文件,找到依赖包的信息,自行编译安装链接,适合无网络环境

得到依赖包信息,在gcc解压后的文件夹内输入

cat contrib/download_prerequisites

在文件的头部你会得到如下信息,这就是gcc的依赖包以及版本信息

gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.16.1.tar.bz2'

gmp编译安装

目录地址:https://mirrors.aliyun.com/gnu/gmp/

下载并解压
wget https://mirrors.aliyun.com/gnu/gmp/gmp-6.1.0.tar.bz2
tar -jxvf gmp-6.1.0.tar.bz2
编译安装
cd gmp-6.1.0
./configure --prefix=/usr/local/gmp-6.1.0  --enable-cxx
make -j$(nproc)
make check
make install

makefile文件成功信息

make编译一旦出错,需要输入make cleanmake distclean清理上次编译的残留文件

链接共享库

将安装目录下的lib文件夹中的共享库链接到/usr/lib 中

ln -s /usr/local/gmp-6.1.0/lib/libgmp.so /usr/lib/libgmp.so.10

mpfr编译安装

目录地址:https://mirrors.aliyun.com/gnu/mpfr/

下载并解压
wget https://mirrors.aliyun.com/gnu/mpfr/mpfr-3.1.4.tar.bz2
tar -jxvf mpfr-3.1.4.tar.bz2
编译安装
cd mpfr-3.1.4
./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0
make
make check
make install
链接共享库
ln -s /usr/local/mpfr-3.1.4/lib/libmpfr.so /usr/lib/libmpfr.so
	ln -s /usr/local/mpfr-3.1.4/lib/libmpfr.so.4 /usr/lib/libmpfr.so.4
ln -s /usr/local/mpfr-3.1.4/lib/libmpfr.so.4.1.4 /usr/lib/libmpfr.so.4.1.4

mpc编译安装

目录地址:https://mirrors.aliyun.com/gnu/mpc/

下载并解压
wget https://mirrors.aliyun.com/gnu/mpc/mpc-1.0.3.tar.gz
tar -zxvf mpc-1.0.3.tar.gz
编译安装
cd mpc-1.0.3
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4
make
make check
make install
链接共享库
ln -s /usr/local/mpc-1.0.3/lib/libmpc.so /usr/lib/libmpc.so
ln -s /usr/local/mpc-1.0.3/lib/libmpc.so.3 /usr/lib/libmpc.so.3
ln -s /usr/local/mpc-1.0.3/lib/libmpc.so.3.0.0 /usr/lib/libmpc.so.3.0.0

isl编译安装

目录地址:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/

下载并解压
wget http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
tar -jxvf isl-0.16.1.tar.bz2
编译安装
cd isl-0.16.1
./configure --prefix=/usr/local/isl-0.16.1 --with-gmp-prefix=/usr/local/gmp-6.1.0
make
make check
make install
链接共享库
ln -s /usr/local/isl-0.16.1/lib/libisl.so /usr/lib/libisl.so
ln -s /usr/local/isl-0.16.1/lib/libisl.so.15 /usr/lib/libisl.so.15
ln -s /usr/local/isl-0.16.1/lib/libisl.so.15.1.1 /usr/lib/libisl.so.15.1.1

GCC编译

为了避免编译产生的文件污染源代码文件夹,所以我们需要新建一个文件夹用来存放编译产物

cd gcc-7.4.0/
mkdir build
cd build
../configure  --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --with-isl=/usr/local/isl-0.16.1
make
make install

标签:gcc,gmp,GCC7.4,lib,--,make,usr,通用版,10.12
来源: https://www.cnblogs.com/tothk/p/16441498.html