在Ubuntu系统非root环境下安装gcc

由于最近用的一个机子不能访问外网,又没有gfortran,只能手动安装,在网上查了很多资料,终于成功装上,以下是整个安装过程。

首先gcc可以在官网(https://gcc.gnu.org/)下到,国内也有镜像下载地址,这里下载的是gcc-9.4.0版本。下载之后放到指定的路径/home/user/gcc_compile下,通过命令

tar -zxvf gcc-9.4.0.tar.gz

或者

tar -xjvf gcc-9.4.0.tar.bz2

解压。进入解压后的gcc-9.4.0文件夹下,通过命令

cat contrib/download_prerequisites

查看文件,可以看到gcc的依赖库gmp,mpfr,mpc的版本(isl库可不装),这里分别是gmp-6.1.0,mpfr-3.1.4和mpc-1.0.3,其中gmp又依赖m4,因此下载了m4-1.4.17.tar.gz。所有文件都放在/home/user/gcc_compile路径下。

根据依赖关系,GCC的编译安装顺序为:m4->gmp->mpfr->mpc->gcc

编译安装m4

tar -xzvf m4-1.4.17.tar.gz
mkdir m4
cd m4-1.4.17
./configure --prefix=/home/user/gcc_compile/m4
make
make check
make install

make check用来检查编译是否正确,可以不用。

安装成功则m4路径下会有lib文件。

之后还要修改环境变量

vi ~/.bashrc

添加

#M4
export PATH=/home/user/gcc_compile/m4/bin:$PATH

然后

source ~/.bashrc

激活环境变量。

编译安装gmp

tar -xjvf gmp-6.1.0.tar.bz2
mkdir gmp
cd gmp-6.1.0
./configure  --prefix=/home/user/gcc_compile/gmp
make -j8 # 多线程编译
make install

安装成功则gmp路径下会有lib文件。

 编译安装mpfr

tar -xjvf mpfr-3.1.4.tar.bz2
mkdir mpfr
cd mpfr-3.1.4
./configure  --prefix=/home/user/gcc_compile/mpfr --with-gmp=/home/user/gcc_compile/gmp
make -j8 # 多线程编译
make install

安装成功则mpfr路径下会有lib文件。

 编译安装mpc

tar -zxvf mpc-1.0.3.tar.gz
mkdir mpc
cd mpc-1.0.3
./configure  --prefix=/home/user/gcc_compile/mpc --with-gmp=/home/user/gcc_compile/gmp --with-mpfr=/home/user/gcc_compile/mpfr
make -j8 # 多线程编译
make install

安装成功则mpc路径下会有lib文件。

安装完毕gmp, mpfr, mpc三个库之后. 要将库文件(lib路径)写入环境变量LD_LIBRARY_PATH中。

vi ~/.bashrc

添加

export LD_LIBRARY_PATH=/home/user/gcc_compile/gmp/lib:/home/user/gcc_compile/mpfr/lib:/home/user/gcc_compile/mpc/lib:$LD_LIBRARY_PATH

然后

source ~/.bashrc

激活环境变量。

编译安装gcc

mkdir gcc
cd gcc-9.4.0
./configure --prefix=/home/user/gcc_compiler/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++,fortran --with-gmp=/home/user/gcc_compile/gmp --with-mpfr=/home/user/gcc_compile/mpfr --with-mpc=/home/user/gcc_compile/mpc
make
make install

这里make时无法使用多线程编译,不知道为什么,整个编译过程时间较长。

之后也要修改环境变量

vi ~/.bashrc

添加

export PATH=/home/user/gcc_compiler/gcc/bin:/home/user/gcc_compiler/gcc/lib64:$PATH
export LD_LIBRARY_PATH=/home/user/gcc_compiler/gcc/lib:/home/user/gcc_compiler/gcc/lib64:$LD_LIBRARY_PATH

然后

source ~/.bashrc

激活环境变量。

最后查看gcc版本

gcc -v

参考网页:

安装GCC-8.3.0及其依赖 - 云+社区 - 腾讯云  https://cloud.tencent.com/developer/article/1424725

在Linux系统上安装m4-1.4.18版本_青松美光_新浪博客  http://blog.sina.com.cn/s/blog_15d0344a30102xjyy.html

手动安装gcc 9.2.0 的依赖库_pannubi的博客-CSDN博客  https://blog.csdn.net/pannubi/article/details/104448773

GCC-8安装(非root) - 知乎  https://zhuanlan.zhihu.com/p/371807723

非Root权限下gcc(g++)的安装【Centos】_丑小鸭-CSDN博客  https://blog.csdn.net/qq_29750461/article/details/104885031

上一篇:gcc升级高版本-(shell3)


下一篇:GMP模型