centos 6 升级gcc

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

今天又搞了一天,升级成功的那一刻,我都快感动得哭了。。。什么都不说了,都是泪。。。

 

其实升级不难,真的一点都不难,重点是被自己人的文档坑了。。

 

系统centos 6.3 32位 i386 自带gcc 4.4.6 升级到gcc 4.8

 

参考:http://www.cnblogs.com/zhangtingkuo/archive/2013/04/06/3002982.html

 

http://blog.csdn.net/magicyang87/article/details/7972169

 

 

 

1.下载源码包

 
  
   wget http:   //ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2 
  
  
  
   解压:   tar -jxvf  gcc-4.8.0.tar.bz2 
  
     
  
   2.下载编译所需依赖库 
  
   
    
     cd gcc-4.8.0    
    
     ./contrib/download_prerequisites    
    
     cd ..   
    
         
    
     3.建立编译输出目录   
    
     mkdir gcc-build-4.8.0   
    
         
    
     4.进入此目录,执行以下命令,生成makefile文件   
    
     cd  gcc-build-4.8.0    
    
     ../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib   
    
         
    
     5.编译   
    
     make -j4   
    
     如果编译成功,则时间是比较长的,半个小时左右,所以如果你看它一直在输出没有立刻停下来,应该很开心!   
    
         
    
     6.安装   
    
     sudo make install   
    
         
    
     7.切换GCC到新版   
    
     确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后locate gcc-4.8|tail找一下   
    
     ls /usr/local/bin | grep gcc   
    
     添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了    
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40    

    
     8.确认当前版本已经切换为新版   
    
     gcc -v   
    
     我这里用ssh远程的,发现版本没变,断开重练下,重新生成会话后发现变成了4.8了!   
    
        
    
         
    
         
    
     看起来很顺有木有?!   
    
     心酸的弯路不知道走了多少呢!   
    
     以下是辛酸史。。   
    
      =================万恶的分割线===========================   
    
      首先是参考我们伟大的头儿的博客,     http://blog.csdn.net/yanxiangtianji/article/details/8365630。   
    
         
    
     坑一、libstdc++-static   
    
         
    
     他这过程也是参考各种博客集成而来,因为我网上看大部分第一步都是:     yum install glibc-static libstdc++-static -y   
    
     可其实centos的源上根本没有     libstdc++-static,第一个是有的,请安装。   
    
     坑爹的是,按照教程进行到编译make 之后,查看目录下的config.log 文件 ,搜索err,果然报      static-     libstdc++的错!   
    
     这下我可认真了,死都要把     libstdc++-static装上。   
    
     首先,换centos的源,换了163的源(http://www.cnblogs.com/peterpanzsy/archive/2013/04/07/3003387.html),不行,后来跑oschina上提问,大神说epel源上应该有,于是换epel的源,仍然屁都没有!   
    
     于是去下rpm包,centos的软件包又不多,只能去下fedora的,一个家族的可以一试,epel源两者也通用的。   
    
     rpm -ivh xxx.rpm
   
    
     结果出现依赖问题,于是下了这么一堆:   
    
        
    
     可是安装第一个的时候又跟系统自带的4.4.6版本的冲突,尼玛的,yum remove又因为依赖关系不可行,总不能卸载自带的gcc 4.4.7吧,后面编译新的gcc还要靠它呢,不能冲动。   
    
     今天上午就是乱搞,搞到报kernel的错,下午花了一个小时重装的系统。     
       还有一个原因,大神误以为他当年6.3的centos是成功yum装上了      libstdc++-static,于是我顺道重装的时候换成了centos6.3的版本,开始是6.4的其实。    
     
       最后发现6.3的源上也没有这个神奇的东西。    
于是对安装     libstdc++-static绝望了。。。放弃。   
    
     坑二、三个依赖库是否要手动编译安装的问题。   
    
     

进入gcc目录,执行:

     

./contrib/download_prerequisites 

     

下正确版本的载那三个依赖的库。

     

大神说:可惜它不能自动配置编译安装,可以用我写的这个脚本来执行(假设当前是在contrib文件夹下):

    
    
     cd gmd    
./configure    
make install    
cd ../mpfr    
./configure    
make install    
cd ../mpc    
./configure    
make install   
    
     可是真的要装吗?尼玛装完之后显然会出问题的!至少在我的实践里。我在网上偶然间看到有人这么说了一句,放心上了。   
    
     这么手动一装之后,编译gcc,直接报两个error停掉了,然后就出现第一步搜到的     libstdc++-static错误。   
    
         
    
     后来跳过手动装gmd  mpfr mpc之后,才执行了编译成功了。。。   
    
         
    
     坑三、共享库路径的问题   
    
         
    
     因为大神那篇博客里说以上的三个共享库不在系统默认路径下。   
    
     我们可以搜一下:locate mpc|grep so   
    
        确实有/usr/local/lib/libmpc.so    
可是当我在     /etc/ld.so.conf.d下面加上/usr/local/lib路径后执行ldconfig又报错,估计下面没有找到合法的库文件吧。   
    
     于是去掉,并且没有产生什么影响。   
    
         
    
         
    
     我是真心不知道大神那个是怎么会那么复杂的。。   
    
         
    
         
    
         
   
  
 

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值