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
前功尽弃,还是老老实实按照前面的方法安装吧
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。