由于最近用的一个机子不能访问外网,又没有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