linux编译gcc-5.1.0

最新的gcc-5.1.0才发布出来,迫不及待地装上试一试。
http://ftp.gnu.org/gnu/gcc/下载gcc-5.1.0
然后解压到目录gcc-5.1.0/
运行

    ./contrib/download_prerequisites 

下载编译所需的依赖包
gcc依赖包有:m4-1.4.17.tar.gz,gmp-5.1.3.tar.gz mpfr-3.1.2.tar.gz mpc-1.0.3.tar.gz
但是这些包都太新了,这些依赖包太新了也不行,太旧了也不行,只能使用合适的版本,这样使用gcc自带的下载依赖的方式最好不过了。
然后在gcc-5.1.0/ 的同一级目录下面

mkdir gcc-build/
cd gcc-build
../gcc-5.1.0/configure --build=x86_64-linux-gnu --prefix=/usr/local/lib/gcc-5.1.0 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib

执行完configure之后生成了Makefile文件,然后:


make

如果你的电脑有4核CPU的话可以直接make -j4

make install

好啦,现在在你的/usr/local/lib/下有个gcc-5.1.0的目录了,这个目录就是gcc-5.1.0的安装目录。只要把/usr/local/lib/gcc-5.1.0/bin加入到PATH中就行了。

如果嫌上述安装步骤太繁琐就直接使用我写的脚本:
github上的gcc-install.sh脚本
如果脚本下载gcc-5.1.0很慢的话(被墙了),那么可以先下载gcc-5.1.0.tar.gz到脚本同一级别目录,然后执行脚本

我们来看看依赖库如果太新会怎么样:
以下是错误的安装方法:—————————————-
先下载m4-1.4.17.tar.gz,gmp-5.1.3.tar.gz mpfr-3.1.2.tar.gz mpc-1.0.3.tar.gz
全部解压到/root目录下然后:
安装m4:——————————-

cd m4-1.4.17
./configure --prefix=/usr/local/lib/m4-1.4.17
make 
make check
make install

安装gmp:————————————

cd gmp-5.1.3
./configure --prefix=/usr/local/lib/gmp-5.1.3
make
make check
make install

安装mpfr:———————————————

cd mpfr-3.1.2
./configure --prefix=/usr/local/lib/mpfr-3.1.2  --with-gmp=/usr/local/lib/gmp-5.1.2
make
make check
make clean

安装mpc:———————————————-

cd mpc-1.0.3
./configure --prefix=/usr/local/lib/mpc-1.0.3   --with-gmp=/usr/local/lib/gmp-5.1.3 --with-mpfr=/usr/local/lib/mpfr-3.1.2
make
make check
make install

安装gcc:———————————————————-

cd  gcc-build/
../gcc-5.1.0/configure --build=x86_64-linux-gnu --prefix=/usr/local/lib/gcc-5.1.0 --with-gmp=/usr/local/lib/gmp-5.1.3 --with-mpfr=/usr/local/lib/mpfr-3.1.2 --with
-mpc=/usr/local/lib/mpc-1.0.3 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
make -j4

出错了:
configure: error: in `/root/gcc-5.1.0/x86_64-unknown-linux-gnu/libgcc’: configure: error: cannot compute suffix of object files: cannot compile
前功尽弃,还是老老实实按照前面的方法安装吧

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。