zoukankan      html  css  js  c++  java
  • Linux-GLIBCXX版本过低导致编译错误--version `GLIBCXX_3.4.20' not found

    最近在CentOS6.2上安装protobuf2.4.1,编译的时候出现如下错误:

    /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by */3rd-party/protobuf-2.4.1/src/.libs/libprotobuf.so.7)
    /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by */3rd-party/protobuf-2.4.1/src/.libs/libprotoc.so.7)

    1)检查了gcc版本:gcc --version 得到结果gcc (GCC) 4.9.2 已经比较新;

    2)strings /usr/lib64/libstdc++.so.6 |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_DEBUG_MESSAGE_LENGTH

    3)sudo  find / -name  libstdc++.so.6* 得到结果:

    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
    /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
    /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
    /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
    /usr/lib64/libstdc++.so.6.bak
    /usr/lib64/libstdc++.so.6.0.17
    /usr/lib64/libstdc++.so.6.0.13
    /usr/lib64/libstdc++.so.6
    /usr/local/lib64/libstdc++.so.6.0.18
    /usr/local/lib64/libstdc++.so.6.0.18-gdb.py
    /usr/local/lib64/libstdc++.so.6.0.20
    /usr/local/lib64/libstdc++.so.6.0.20-gdb.py
    /usr/local/lib64/libstdc++.so.6

    可以看到,已经有libstdc++.so.6.0.20

    4)ls -al /usr/lib64/libstdc++.so.6 得到结果:

    lrwxrwxrwx. 1 root root 30 11月 16 11:31 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.17

    说明虽然gcc已经更新到最新版,但是连接还是旧版本,所以只需要修改连接就可以了。

    解决方案步骤:

    1)sudo cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64  //复制文件

    2)sudo rm -rf /usr/lib64/libstdc++.so.6  //删除旧文件

    3)sudo ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6 //链接到新版本

  • 相关阅读:
    Minio对象存储
    白话解说TCP/IP协议三次握手和四次挥手
    企业环境下MySQL5.5调优
    Mac下iTerm2配置lrzsz功能
    七牛云图床和Markdown使用
    SSIS: 把存储在数据库中的图片导出来
    关闭Outlook的时候使之最小化
    【转】CTE(公用表表达式)
    通过SSIS监控远程服务器磁盘空间并发送邮件报警
    在Windows Server 2008 R2 中架设 SMTP 服务器
  • 原文地址:https://www.cnblogs.com/twinhead/p/9248745.html
Copyright © 2011-2022 走看看