您的位置:首页 > 运维架构 > Linux

centos 下编译 gcc

2016-01-21 14:34 627 查看
由于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 , 再安装 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


即可完成安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gcc