GCC:/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15 not found

源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.15' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。</p> <p>[root@localhost gcc-5.2.0]# cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/ [root@localhost gcc-5.2.0]# rm /usr/lib64/libstdc++.so.6 [root@localhost gcc-5.2.0]# ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6</p> <ol> <li>问题原因分析 为了安装最新版本的Node.js(最新版本的Node.js使用了C++ 11中,而C++ 11需要code>gcc 4.8+才能支持),将gcc升级到了当前最新版本v 5.2.0。升级后,成功编译安装了新版本的Node.js(v 4.2.1),但运行时程序时出现了以下错误: node: /usr/lib64/libstdc++.so.6: version <code>GLIBCXX_3.4.21' not found (required by node) node: /usr/lib64/libstdc++.so.6: version</code>GLIBCXX_3.4.15' not found (required by node) node: /usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.20′ not found (required by node)
运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC

输出结果如下:
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
从以上输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

  1. 问题处理
    执行以下命令,查找编译gcc时生成的最新动态库:
    find / -name “libstdc++.so*”
    输出如下:
    /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 //最新动态库
    ……

/home/gcc-5.2.0/gcc-temp是升级gcc时的输出目录。

将上面的最新动态库libstdc++.so.6.0.21复制到/usr/lib64目录下:
cp /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64

复制后,修改系统默认动态库的指向,即:重建默认库的软连接。
切换工作目录至/usr/lib64:cd /usr/lib64
删除原来软连接: rm -rf libstdc++.so.6
将默认库的软连接指向最新动态库:ln -s libstdc++.so.6.0.21 libstdc++.so.6

默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC

现在输出如下:
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_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

Original: https://www.cnblogs.com/DswCnblog/p/6929305.html
Author: 滴水瓦
Title: GCC:/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15 not found

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535726/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • C++ Addon Async 异步机制

    线程队列: libuv,window 可在libuv官网下载相应版本 opencv: 编译的时候opencv的位数要和 node的bit 一致 兼容electron : node-…

    C++ 2023年5月29日
    042
  • [C++] 类的成员变量和成员方法

    类具有成员变量和成员方法 成员变量用来描述某个对象的具体特征,是静态的,也称为成员属性,这些属性一般设置为私有,仅供类的内部使用。 成员方法用来描述某个对象的具体行为,是动态的,也…

    C++ 2023年5月29日
    070
  • c++使用用空格拼接字符串_accumulate用法

    std::accumulate(std::begin(x), std::end(x), string(), [](string &ss, string &s){re…

    C++ 2023年5月29日
    074
  • EclipseC++学习笔记-4 使用win11 wslg 启动应用

    wslg在win10下无法安装,升级win11后才可以基本按网上方法都能安装成功,但需要注意两点1、wsl –update2、如果启动程序不报错,但是不显示窗口的话 e…

    C++ 2023年5月29日
    040
  • 【C++服务端技术】智能锁

    #pragma once #include namespace Extralib { namespace Thread { /* * 利用对象生存周期自动加解锁,比较安全 */ c…

    C++ 2023年5月29日
    047
  • C/C++知识点记录

    1. strcpy 的部分理解char strcpy(char dest, const charsrc){while(dest++=src++)return dest-1;}这是s…

    C++ 2023年5月29日
    062
  • 2.设计模式-七大原则(C++)

    任何一个设计模式都离不开七大原则中的任一原则.所以七大原则非常重要,只要我们明白了七大原则,就可以知道如何在项目中使用什么设计原则了. 设计模式的七大原则如下所示: 1.单一职责原…

    C++ 2023年5月29日
    046
  • C++ 知识点

    知识点 说明 所谓的引用就是给变量取一个别名,使一块内存空间可以通过几个变量名来访问。声明引用类型的变量需要在变量名前加上符号&,并且必须指定初值,即被引用的变量。 C++…

    C++ 2023年5月29日
    049
  • EclipseC++学习笔记-10 warnings being treated as errors,,error: format ‘%u’ expects argument of type

    增加选项All Options增加-Wformat=0 本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。另外建了几个QQ技术群:2、全栈技…

    C++ 2023年5月29日
    043
  • 解决JAVA调用C++ DLL文件Unable to load library的问题

    JAVA项目开发中,有时候会遇到调用C++编写的动态链接库的场景(比如调用第三方的动态链接库、软件中关键部分用C++编码提供给外部调用)。我们知道JAVA调用动态链接库(C/C++…

    C++ 2023年5月29日
    089
  • 彻底搞懂之C++智能指针

    前言 在现代 c + + 编程中,标准库包含 智能指针,这些指针用于帮助确保程序不会出现内存和资源泄漏,并具有异常安全。 标准库智能指针分类 auto_ptr, shared_pt…

    C++ 2023年5月29日
    057
  • C++ 内存池 — C++ Memory Pool

    这是我翻译的文章,来自 Code Project, 原文作者: DanDanger2000. 原文链接: http://www.codeproject.com/cpp/Memory…

    C++ 2023年5月29日
    079
  • C++ 获取当前时间毫秒数

    在window环境下:1、精确到毫秒 include “stdafx.h” include include Original: https://www.cn…

    C++ 2023年5月29日
    052
  • C/C++ 中带空格字符串输入的一些小trick

    今天在重温 C++ 的时候发现自己存在的一些问题,特此记录下来。 我们可以看一下下面这段代码: #include #include #include #include using …

    C++ 2023年5月29日
    052
  • Model/View结构(整理自<Qt5.9 C++开发指南>)

    数据模型 数据不仅可以存储在数据模型中,数据可以是其他类,文件,数据库或任何数据源. 视图组件 那些带View的类; 在显示数据时,调用setModel()函数,为自己设置一个数据…

    C++ 2023年5月29日
    064
  • 从C++到GO

    刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提…

    C++ 2023年5月29日
    051
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球