CentOS上GCC 升级到6.3.0的方法,centos6.3.0
CentOS上GCC 升级到6.3.0的方法,centos6.3.0
虚拟机环境信息:
[root@localhost /]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@localhost /]# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
可以看出gcc版本为4.8.5
GCC依赖于gmp4.2+,mpfr2.4+和mpc0.8+,这里直接下载安装最新的版本。
安装gmp6.1.2
tarxvfgmp-6.1.2.tar.xz
cdgmp-6.1.2
./configure--prefix=/usr/local/gmp
make-j20&&makeinstall
(执行./configure--prefix=/usr/local/gmp时会出现错误configure: error: could not find a working compiler。直接yum remove gcc 卸载然后 yum install gcc 重新安装再执行上述操作)
安装mpfr3.1.5mpfr依赖于gmp
tarxvfmpfr-3.1.5.tar.gz
cdmpfr-3.1.5
./configure--prefix=/usr/local/mpfr--with-gmp=/usr/local/gmp
make-j20&&makeinstall
安装mpc1.0.3mpc依赖于gmp和mpfr
tarxvfmpc-1.0.3.tar.gz
cdmpc-1.0.3
./configure--prefix=/usr/local/mpc--with-gmp=/usr/local/gmp-with-mpfr=/usr/local/mpfr
make-j20&&makeinstall
安装GCC6.3.0
tarxvfgcc-6.3.0.tar.gz
cdgcc-6.3.0
./configure--prefix=/usr/local/gcc--enable-threads=posix--disable-checking--disable-multilib--enable-languages=c,c++--with-gmp=/usr/local/gmp--with-mpfr=/usr/local/mpfr--with-mpc=/usr/local/mpc
make-j20&&makeinstall
安装过程中可能会出现:
“checkingforsuffixofobjectfiles...configure:error:cannotcomputesuffixofobjectfiles:cannotcompile
See`config.log'formoredetails.
make[2]:***[configure-stage1-target-libgcc]Error1
make[2]:Leavingdirectory`/tmp/gcc-6.3.0'
make[1]:***[stage1-bubble]Error2
make[1]:Leavingdirectory`/tmp/gcc-6.3.0'
make:***[bootstrap]Error2
解决方法:
yuminstallm4
yuminstallgcc-c++
实际解决办法:编辑变量,把我们安装的gmp,mpfr,mpc加进去
vi/etc/ld.so.conf
添加部分:
/usr/local/lib#这个是默认系统的变量
/usr/local/gmp/lib
/usr/local/mpfr/lib
/usr/local/mpc/lib
添加保存后记得更新动态库的缓存:
ldconfig-v
更新后再去重新编译安装。
备份系统默认的gcc版本
mv/usr/bin/gcc/usr/bin/gcc-bak
mv/usr/bin/g++/usr/bin/g++-bak
mv/usr/bin/c++/usr/bin/c++-bak
创建新的gcc软连接
ln-sf/usr/local/gcc/bin/gcc/usr/bin/gcc
ln-sf/usr/local/gcc/bin/c++/usr/bin/c++
ln-sf/usr/local/gcc/bin/g++/usr/bin/g++
ln-sf/usr/local/gcc/lib64/libstdc++.so.6.0.22/usr/lib64/libstdc++.so.6
查看gcc版本:
[root@localhost ~]# gcc --version
gcc (GCC) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
或者
[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-pc-linux-gnu/6.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
Thread model: posix
gcc version 6.3.0 (GCC)
评论暂时关闭