CentOS编译安装GCC

前言

        前几天初学C++的时候有被一个编译小问题所困扰,上bbs跟各路大哥讨论后(bbs链接),发现是gcc版本太低所导致的,yum源上的gcc版本为4.4.7,于是上gcc官网上下载gcc-5.2.0进行编译。

系统配置

        Linux发行版:CentOS-6.6

        当前gcc版本:4.4.7

编译

        进行./configure 的时候出错,错误如下:

...
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
...

        分别下载最新版的GMP、MPFR、MPC进行make & make install,之后再进行gcc的./configure,出现同样错误,checking gmp.h, mpft.h, mpc.h 均为yes,但checking gmp/mpfr/mpc libraries则为no。

        根据错误提示在configure的时候加选项--with-gmp、--with-mpfr、--with-mpc依旧出现同样错误。于是到stackoverflow上查阅资料,找到一个解决方法(stackoverflow链接),说是将GMP、MPFR、MPC的源码目录拷贝到gcc的编译根目录,目录名分别为gmp、mpfr、mpc,再进行configure即可。

        尝试了一下果然通过了configure,然后进行make,make的过程比较顺利,在make install之前先把旧版的gcc yum erase掉,重新login后就可以正常使用新版本gcc:


使用

        在使用新版gcc编译程序的过程中可能会出现如下错误:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
        可用命令

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX  

        查看libstdc++动态库的信息,如下:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
        可以看到确实没有“GLIBCXX_3.4.21”,原因是libstdc++动态库的版本太低。

        在我们的gcc编译目录里有我们需要的libstdc++动态库,路径如下:

./gcc-5.2.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/
        将里面的 libstdc++.so.6.0.21 拷贝到路径
/usr/lib/
        重新建立软连接:
libstdc++.so.6 -> libstdc++.so.6.0.21

        即完成动态库的更新。


        希望文章对大家有帮助,欢迎指点~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值