CentOS 6.5 升级gcc到4.8 以及libstdc++

本文介绍如何将 CentOS 6.5 的 GCC 版本从 4.4.7 升级到 4.8.2,以支持 C++11 特性。包括获取安装包、下载依赖项、配置编译参数、解决编译错误及安装步骤,并验证升级后的 GCC 版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS 6.5 自带gcc太旧不支持c11, 升级到4.8的步骤:

引用:
http://cache.baiducontent.com/c?m=9d78d513d99216f31eb0d5690d67d371182497634bc0d16578c39339c6350a564717e5ac27551a10948522685be90f1efdf1456f2a4665f28cc8ff1b8ae7d4756ed97b23706bd71c4dce42f0981372d620e61cbee55ffaebad6ec7f587cedf5650cd4e077a82f4965c0412cb78f0636ba5f9c7&p=8566c54ad5c340e70be29635595298&newp=8b2a975f86cc42af59b2c6344d5780231610db2151ddd101298ffe0cc4241a1a1a3aecbf27281701d8ce776305ac4d58eaf03478350034f1f689df08d2ecce7e35&user=baidu&fm=sc&query=centos+6%2E5+gcc+4%2E8&qid=d9968aa80001bb84&p1=1

  贴一下步骤:      一、简易安装      操作环境 CentOS6.5
        64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2
          不能通过yum的方法升级,需要自己手动下载安装包并编译

  1.1 获取安装包并解压        
 wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2      
 tar -jxvf  gcc-4.8.2.tar.bz2         
 当然,http://ftp.gnu.org/gnu/gcc     里面有所有的gcc版本供下载,最新版本已经有4.9.2啦.


  1.2 下载供编译需求的依赖项         
 参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
   cd gcc-4.8.0       ./contrib/download_prerequisites 


  1.3 建立一个目录供编译出的文件存放         
 mkdir gcc-build-4.8.2        
 cd gcc-build-4.8.2

  1.4 生成Makefile文件        
 ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

  1.5 编译(注意:此步骤非常耗时)      
 make -j4         
 -j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。
          我在安装此步骤时候出错,错误描述:

   `compilation terminated. make[5]: * [_gcov_merge_add.o] 错误 1 make[5]: Leaving directory 

/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/32/libgcc’
make[4]: * [multi-do] 错误 1 make[4]: Leaving directory
/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc’
make[3]: * [all-multi] 错误 2 make[3]: * 正在等待未完成的任务….
make[3]: Leaving directory
/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc’
make[2]: * [all-stage1-target-libgcc] 错误 2 make[2]: Leaving
directory/home/imdb/gcc-4.8.2/gcc-build-4.8.2’ make[1]: *
[stage1-bubble] 错误 2 make[1]: Leaving directory
/home/imdb/gcc-4.8.2/gcc-build-4.8.2’ make: * [all] 错误 2

  大概看看,错误集中在 x86_64unknown-linux-gnu/32/libgcc 和

x86_64-unknown-linux-gnu/libgcc
根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):
sudo yum -y install glibc-devel.i686 glibc-devel

  1.6、安装      sudo make install

          二、验证安装      重启,然后查看gcc版本:
          gcc -v      尝试写一个C++11特性的程序段 tryCpp11.cc,使用了shared_ptr
          复制代码         1 //tryCpp11.cc         2 #include <iostream>       3 #include <memory>         4           5 int main()        6 {         7     std::shared_ptr<int>

pInt(new int(5)); 8 std::cout << *pInt << std::endl; 9
return 0; 10 } 复制代码 验证文件:
g++ -std=c++11 -o tryCpp11 tryCpp11.cc ./tryCpp11

          三、其他安装:
  - 在Ubuntu机器上安装:参考文献[3]

  - 非简易安装:参考文献[4]

  - 多个gcc版本共存问题:暂无


          四、参考文献      [1] 参考的主要安装步骤 http://www.cnblogs.com/ytjjyy/p/4008096.html

    注:这篇文章的后半部分解决动态库的方法非常有用处

安装完后, 编译程序运行应该还是有 GLIBCXX not found的错误
解决方案:

http://blog.csdn.net/officercat/article/details/39519265

注意其中

$ cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64   
$ rm -rf /usr/lib64/libstdc++.so.6  
$ ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6  
$ strings /usr/lib64/libstdc++.so.6 | grep GLIBC  

本人的计算机上不是20, 而是18

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值