码迷,mamicode.com
首页 > 其他好文 > 详细

gcc-4.4.7升级到gcc-4.8.2

时间:2021-01-14 11:29:27      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:har   文件   redis   tip   zlib   bcp   sdn   https   unknown   

一、升级的前提

  在centos6.5上安装Redis-6.0.10时报了如下的错误:

cc1plus: 错误:无法识别的命令行选项“-std=c++11”

经过查阅相关资料发现原因是本centos6.5系统的gcc版本太低,查看当前gcc版本信息:

1 [root@localhost lib]# gcc -v
2 使用内建 specs。
3 目标:x86_64-redhat-linux
4 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
5 线程模型:posix
6 gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
7 [root@localhost lib]# 

当前版本信息为gcc-4.4.7,出现上面的原因至少需要gcc-4.7以上版本

二、升级gcc到gcc-4.8.2

1、下载地址:http://ftp.gnu.org/gnu/gcc/

2、解压

#tar zxvf gcc-4.8.2.tar.gz

3、进入目录并进行配置

#cd gcc-4.8.2
#./contrib/download_prerequisites

上面这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力,脚本会自动下载三个依赖库别为gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1。

或者也可以手动下载依赖库并安装

1 ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
2 http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
3 http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

本人在这里使用了脚本,发现半天都跑不完,到最后居然不动了,于是想手动下载安装,发现上面三个地址也不能下载,只能从网上寻找。

首先获取三个源码:

 1 #tar -jxvf gmp-4.3.2.tar.bz2
 2 #cd gmp-4.3.2 
 3 #./configure --prefix=/usr  
 4 # make
 5 # make install  
 6 
 7 #tar -jxvf mpfr-2.4.2.tar.bz2
 8 #cd mpfr-2.4.2  
 9 #./configure --prefix=/usr  
10 #make 
11 #make install  
12 
13 #tar -xzvf mpc-0.8.1.tar.gz
14 #cd mpc-0.8.1 
15 #./configure --prefix=/usr  
16 #make
17 #make install  

注意:如果先安装mpc-0.8.1.tar.gz后安装mpfr-2.4.2.tar.bz2会报错

configure: error: libmpfr not found or uses a different ABI (including static vs shared).

所以就按上述步骤安装即可。

4、进入gcc-4.8.2目录进行配置编译

1 #cd gcc-4.8.2
2 ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
3 make

gcc的参数配置:

  –disable-checking //生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查;
  –enable-languages //指定gcc能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
  –disable-multilib //默认gcc能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。

make后会出现如下错误:

1 configure: error: C++ compiler missing or inoperational
2  
3 make[2]: \*** [configure-stage1-libcpp] Error 1    
4 make[2]: Leaving directory `/home/liukk/gcc-4.8.1‘    
5 make[1]: \*** [stage1-bubble] Error 2    
6 make[1]: Leaving directory `/home/liukk/gcc-4.8.1‘    
7 make: \*** [all] Error 2

说明机子上没有gcc,首先安装gcc,和c++,解决办法:

yum install gcc-c++

然后继续编译,非常耗时,大概一个小时。

make

5、安装

make install

6、验证:

gcc -v

或者

g++ -v

如果显示的gcc版本仍是以前的版本,就需要重启系统。

或者可以查看gcc的安装位置:

which gcc

然后在查看版本,通常gcc都安装在该处位置。

/usr/local/bin/gcc -v
1 [root@localhost include]# /usr/local/bin/gcc -v
2 使用内建 specs。
3 COLLECT_GCC=/usr/local/bin/gcc
4 COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
5 目标:x86_64-unknown-linux-gnu
6 配置为:./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/lib --with-mpc=/usr/lib --with-mpfr=/usr/lib
7 线程模型:posix
8 gcc 版本 4.8.2 (GCC) 
9 [root@localhost include]# 

 

 

 

 

参考:https://blog.csdn.net/qq_22790049/article/details/52873915

gcc-4.4.7升级到gcc-4.8.2

标签:har   文件   redis   tip   zlib   bcp   sdn   https   unknown   

原文地址:https://www.cnblogs.com/renlinsen/p/14275168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!