centos 下编译 gcc
由于PHP7在编译过程需要的GCC版本比较高,而在 wdlinux 中自带的 gcc 版本满足不了PHP7的编译需求,因此这里才有了 gcc 的编译过程实际上在编译 gcc 的过程中又遇到了好多坑,这才有了这篇文章用于记录整个过程安装 GCC下载先到这里去找一个新版本的 gcc 源码,大家可以自行到 gcc 官网查找地址,这里使用这个地址下载,主要是考虑的下载速度问题http://gcc.ska
由于PHP7在编译过程需要的GCC版本比较高,而在 wdlinux 中自带的 gcc 版本满足不了PHP7的编译需求,因此这里才有了 gcc 的编译过程
实际上在编译 gcc 的过程中又遇到了好多坑,这才有了这篇文章用于记录整个过程
安装 GCC
下载
先到这里去找一个新版本的 gcc 源码,大家可以自行到 gcc 官网查找地址,这里使用这个地址下载,主要是考虑的下载速度问题
http://gcc.skazkaforyou.com/releases/
我下载的是 5.3.0 版本,这个是当前日期下的最新版本了
http://gcc.skazkaforyou.com/releases/gcc-5.3.0/gcc-5.3.0.tar.gz
配置
可以先执行一下
./configure
执行结果
从上图可以看到,这里需要几个 with 选项,命令写全后如下
./configure --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
到这里后可以先跳到 安装 GMP、MPFR、MPC 查看,如果都已经安装完成,就可以执行配置过程了,仅仅执行上面的命令,会得到这样的错误提示
需要关闭 multilib,新命令如下
./configure --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc --disable-multilib
再执行配置过程
返回 creating Makefile 表示配置过程成功执行
编译并安装
make && make install
发现编译没过,表示汗一个,会提示错误信息让打开 config.log 查看日志,如下提示
“when loading shared libraries:libmpc.so.3:cannot open shared object file: No such file or directory”.
因此,需要修改环境变量 LD_LIBRARY_PATH, 命令为
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib
然后再执行编译过程即可,程序编译完成后执行命令
source /etc/profile
再执行
gcc -v
查看版本号
安装 GMP、MPFR、MPC
那么等号后面的这几个路径是从哪里来的呢?这里就需要先安装这几个文件
下载
配置
因为各个模块之间都有依赖关系,因此这里需要先安装 GMP , 再安装 MPFR , 最后再安装 MPC,
各个的配置的过程如下
GMP
./configure --prefix=/usr/local/gmp
MPFR
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
MPC
./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
编译并安装
所有的编译命令都是同样的,执行命令如下
make && make install
注意:执行命令前,请确定自己所在的目录是否为各自的模块源码目录
写在最后的:
上面的编译过程是延续了老版本的安装风格,在网上查阅了多个资料并验证后发现在 gcc4.4版本以及当前编译版本 gcc5.3.0中均有 contrib/download_prerequisites,因此,可以省略下载安装 GMP,MPC,MPFR的过程,直接执行命令
/usr/src/gcc-5.3.0/contrib/download_prerequisites
即可完成安装
更多推荐
所有评论(0)