安装ninja遇到 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

36 篇文章 0 订阅
32 篇文章 0 订阅

https://github.com/ninja-build/ninja/releases下载ninja,设置好PATH路径,执行ninja命令显示如下:

[root@test bin]# ./ninja -v
./ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./ninja)
./ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by  ./ninja)

-----------------------------------------------------------------------------------------------------------------------------------------------
执行 strings 命令,发现确实没有`GLIBCXX_3.4.21'和`GLIBCXX_3.4.20'。

[root@test bin]# strings /lib64/libstdc++.so.6.0.19 | grep GLIBCXX
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_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

-------------------------------------------------------------------------------------------------------------------------------------------------------------

解决方法:

1) 从https://ftp.gnu.org/gnu/gcc/选择一个新的版本的gcc,建议版本5以后的。我选择的是6.5.0。

2)编译gcc:

       tar -zxvf gcc-6.5.0.tar.gz

       cd gcc-6.5.0

      mkdir build

     cd  ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

     make

结果遇到了如下错误:C++ preprocessor "/lib/cpp" fails sanity check, 这是由于缺乏必要的c++库导致的,可以执行命令:yum install gcc-c++安装c++库,然后再执行make,就可以继续编译成功。如果想直接升级使用新版本的GCC,再执行make install。就可以了。如果不想使用新版本的gcc,可以继续一下几步,把 libstdc++.so替换为新的库即可。

3)查找  libstdc++.so.6.0.22文件,然后复制到/usr/lib64

4)  cd /usr/lib64

5) unlink libstdc++.so.6 和  ln libstdc++.so.6.0.22  libstdc++.so.6

6) 再执行ninja --version 显示版本如下:

终于搞定。

 

如果有现成的 libstdc++的新的版本,就不需要这么费周折编译gcc了,直接复制到/usb/lib64,做一下第5)步就可以了。


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值