Linux系统自带GCC源中gcc版本太低,推荐手动安装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.
如果报错:
error while loading shared libraries: libmpfr.so.6: cannot open shared object file:
No such file or directory
解决方案参考:
参考1
参考2
我们在mpfr4.0.2已经下了动态库,在 /usr/local/mpfr-4.0.2 路径下的lib文件夹中。
将这里面的 libmpfr.so.6.0.2 移动到 /usr/lib 下。
vi /etc/ld.so.conf
#添加库的路径include /usr/local/lib/
然后终端命令行执行ldconfig
,再重新编译。
安装GMP 6.1.2
注:有时候没有权限需要手动下载时,直接复制wget后的链接在浏览器打开即可
下载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
make 过程需要3个小时左右,make install过程需要一个小时左右,安心等待即可
设置配置文件(原文链接)
设置centos环境变量,可以用export
命令,也可以通过修改文件形式实现,本文以lavavel需要设置环境变量为例,将 /root/.config/composer/vendor/bin 路径加到 PATH
一、临时生效
export PATH=$PATH:/root/.config/composer/vendor/bin1
使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中是无法读取到的。适合设置一些临时变量。
二、通过修改配置文件
首先是设置全局环境变量,对所有用户都会生效:
1、/etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。 2、/etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
- ~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。
- ~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。
此外,修改 /etc/environment 这个文件也能实现环境变量的设置。 /etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。 注:系统是先执行/etc/environment,再执行/etc/profile
以修改/etc/profile 为例:
PATH="$PATH:/root/.config/composer/vendor/bin"
export PATH12
执行 source /etc/profile1
使其立即生效。 如果想多加个路径yourpath1,在将“:yourpath1” 加载path后面,如:
PATH=”$PATH:/root/.config/composer/vendor/bin:yourpath1"