精华内容
下载资源
问答
  • 解决Ubuntu中GLIBCXX_3.4.22不存在的问题。 将压缩包解压。 1、获得其中的libstdc++.so.6.0.22。 2、使用sudo su命令切换root权限。 3、cp ./libstdc++.so.6.0.22 /usr/lib/x86_64-linux-gnu/。 4、ln /usr/lib/x86_...
  • linux/centos中运行程序出现'GLIBCXX_3.4.21' not found 首先检查gcc版本 升级gcc到5.4 解决'GLIBCXX_3.4.21' not found download_prerequisites中要下载的文件无法下载,我已上传 MPFR=mpfr-2.4.2 ...
  • libstdc++.so.6.0.20 含GLIBCXX_3.4.15 - GLIBCXX_3.4.20

    千次下载 热门讨论 2015-01-25 19:55:50
    可以用于解决类似“/opt/MATLAB/R2012a/bin/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./programName)”的错误。详细用法见我博客:...
  • tensorflow在最新gcc版本下用到的libstdc++.so.6.0.22,安装方法参见http://blog.csdn.net/xiaolong2w/article/details/23915171。
  • 解决GLIBCXX_3.4.19 not found的问题,删除原来的软连接指向新的 rm -rf /usr/lib64/libstdc++.so.6 ln -s /usr/local/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6
  • 文章目录 ABI 是什么 _GLIBCXX_USE_CXX11_ABI 是什么 一段示例 踩坑 -- 情形1 -- 情形2 结论 -- 怎么发现的 -- 情形1 -- 情形2 -- 总结 环境 引用 很久没有写文章了记录点什么了,这次问题还算印象深刻 ABI 是什么 ...


    很久没有写文章了记录点什么了,这次问题还算印象深刻

    ABI 是什么

    我们看看wiki定义: 应用二进制接口(英语:application binary interface,缩写为ABI)是指两程序模块间的接口,一个ABI定义了机器代码如何访问数据结构与运算程序,此处所定义的界面相当低端并且相依于硬件。而类似概念的API则在源代码定义这些,则较为高端,并不直接相依于硬件,通常会是人类可阅读的代码。一个ABI常见的样貌即是调用约定:资料怎么成为计算程序的输入或者从中得到输出;x86的调用约定即是一个ABI的例子

    _GLIBCXX_USE_CXX11_ABI 是什么

    一个宏定义.

    In the GCC 5.1 release libstdc++ introduced a new library ABI that includes new implementations of std::string and std::list. These changes were necessary to conform to the 2011 C++ standard which forbids Copy-On-Write strings and requires lists to keep track of their size.

    完整文章
    https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

    大意是c++ 11 的新提案修改了 std::string 和 std::list 的 ABI接口,但是直到 GCC 5.1才发布.

    截取 gcc-9.3.0/include/c++/9.3.0/x86_64-pc-linux-gnu/bits/c++config.h 中的一段代码

    #if _GLIBCXX_USE_CXX11_ABI
    namespace std
    {
      inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
    }
    namespace __gnu_cxx
    {
      inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
    }
    # define _GLIBCXX_NAMESPACE_CXX11 __cxx11::
    # define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {
    # define _GLIBCXX_END_NAMESPACE_CXX11 }
    # define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11
    #else
    # define _GLIBCXX_NAMESPACE_CXX11
    # define _GLIBCXX_BEGIN_NAMESPACE_CXX11
    # define _GLIBCXX_END_NAMESPACE_CXX11
    # define _GLIBCXX_DEFAULT_ABI_TAG
    #endif
    

    string 和 list 简化一下实现大概应该是这个样子

    #if _GLIBCXX_USE_CXX11_ABI
    namespace std {
    	inline namespace __cxx11 {
    		class string {};
    		class list {};
    	};
    };
    #else
    namespace std {
    	class string {};
    	class list {};
    }
    #endif
    

    命名空间前加 inline 关键字是c++11 的新特性 “内联命名空间”,有兴趣的自己去了解一下,这个不是今天讨论的重点

    使用 GCC 5.1+ 的编译器,默认 _GLIBCXX_USE_CXX11_ABI =1也就是默认使用新版ABI的string 和 list,如果要禁用c++11新版ABI, 只需要在Makefile中定义 -D _GLIBCXX_USE_CXX11_ABI=0就可继续使用旧版本ABI顺利编译通过

    一段示例

    典型的使用了老版ABI库的错误提示

    tLogger.cpp:55: undefined reference to `log4cxx::WriterAppender::getEncoding[abi:cxx11]() const'
    tLogger.cpp:58: undefined reference to `log4cxx::Level::toString[abi:cxx11]() const'  objs/bin/tLogger.o: In function `libtse::tLogger::createDailyRollingLogger(libtse::tLoggerAttribute const&)':
    tLogger.cpp:117: undefined reference to `log4cxx::Logger::getLogger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:122: undefined reference to `log4cxx::WriterAppender::setEncoding(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:123: undefined reference to `log4cxx::Level::toLevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:138: undefined reference to `log4cxx::DailyRollingFileAppender::setDatePattern(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:141: undefined reference to `log4cxx::PatternLayout::setConversionPattern(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:154: undefined reference to `log4cxx::WriterAppender::setEncoding(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    tLogger.cpp:155: undefined reference to `log4cxx::Level::toLevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' objs/bin/tLogger.o: In function `libtse::tLogger::setlevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
    tLogger.cpp:180: undefined reference to `log4cxx::Level::toLevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' objs/bin/tLogger.o: In function `libtse::tLogger::trace(char const*, ...)':
    tLogger.cpp:192: undefined reference to `log4cxx::Logger::trace(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' objs/bin/tLogger.o: In function `libtse::tLogger::debug(char const*, ...)':
    tLogger.cpp:204: undefined reference to `log4cxx::Logger::debug(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' objs/bin/tLogger.o: In function `libtse::tLogger::info(char const*, ...)':
    tLogger.cpp:216: undefined reference to `log4cxx::Logger::info(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' objs/bin/tLogger.o: In function `libtse::tLogger::warn(char const*, ...)':
    tLogger.cpp:228: undefined reference to `log4cxx::Logger::warn(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' objs/bin/tLogger.o: In function `libtse::tLogger::error(char const*, ...)':
    tLogger.cpp:240: undefined reference to `log4cxx::Logger::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' objs/bin/tLogger.o: In function `libtse::tLogger::fatal(char const*, ...)':
    tLogger.cpp:252: undefined reference to `log4cxx::Logger::fatal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
    collect2: error: ld returned 1 exit status
    
    

    踩坑

    – 情形1

    情形描述

    • 库LibA 指定采用旧版ABI编译( _GLIBCXX_USE_CXX11_ABI = 0)
    • 库LibB 采用默认编译选项 (_GLIBCXX_USE_CXX11_ABI = 1)
    • 库LibB 引用了 LibA
    • 程序C依赖LibA和LibB,采用默认编译选项 (_GLIBCXX_USE_CXX11_ABI = 1)

    Boom! 程序会莫名奇妙的宕机

    疑问:为什么LibA使用旧版本ABI,而程序使用新版ABI却可以编译通过?
    解答:程序C中没有引用到LibA内有关string 和 list的接口

    – 情形2

    情形描述

    • 库LibA 采用默认编译选项 _GLIBCXX_USE_CXX11_ABI = 1
    • 库LibB 指定采用旧版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 0)
    • 库LibB 引用了 LibA
    • 程序C依赖LibA和LibB,由于LIbB使用了旧版ABI,需要指定 _GLIBCXX_USE_CXX11_ABI = 0才行

    Boom! 程序任然会莫名奇妙的宕机。

    宕机的位置

    AddressSanitizer:DEADLYSIGNAL
    =================================================================
    ==3730==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x7f5edb0c60d5 bp 0x7fffc90c5240 sp 0x7fffc90c5228 T0)
    ==3730==The signal is caused by a READ memory access.
    ==3730==Hint: address points to the zero page.
        #0 0x7f5edb0c60d4 in __pthread_cond_signal (/lib64/libpthread.so.0+0xc0d4)
    
    AddressSanitizer can not provide additional info.
    SUMMARY: AddressSanitizer: SEGV (/lib64/libpthread.so.0+0xc0d4) in __pthread_cond_signal
    

    结论

    – 怎么发现的

    1. 最近升级了gcc9高版本,修改了Makefile
    2. 这问题断断续续我查了好几天时间,主要是花在啃代码上调试上,觉得代码是不是有什么隐藏bug,完全没有想到是ABI定义不一致问题造成的
    3. 由于我还有一台云主机,上面也有工程代码,在这上面编译运行却一切正常

    接下来验证一下自己的猜想

    – 情形1

    • 库LibA 指定采用旧版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 0)
    • 库LIbB 指定采用旧版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 0)
    • 程序C 指定采用旧版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 0)

    运行正常

    – 情形2

    • 库LibA 指定采用新版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 1)
    • 库LIbB 指定采用新版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 1)
    • 程序C 指定采用新版ABI编译 (_GLIBCXX_USE_CXX11_ABI = 1)

    运行正常

    – 总结

    • 首先一个观点,在实际项目中使用老版ABI的库是再正常不过的事情,如果升级了gcc 5.1+ 并且引用了库中string或者list相关接口,势必需要指定 (_GLIBCXX_USE_CXX11_ABI = 0)
    • 将引用到的老版本ABI库使用新gcc重新编译,如果没有源码或者编译三方库非常麻烦,确保引用的库中间不要混合使用新版ABI和旧版ABI

    环境

    系统环境

    CentOS Linux release 7.7.1908 (Core)
    

    编译器环境

    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/local/gcc-9.3.0/libexec/gcc/x86_64-pc-linux-gnu/9.3.0/lto-wrapper
    Target: x86_64-pc-linux-gnu
    Configured with: ../gcc-9.3.0/configure --prefix=/usr/local/gcc-9.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
    Thread model: posix
    gcc version 9.3.0 (GCC) 
    

    引用

    1. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
    展开全文
  • mysql-community-server-8.0.16-1.el7.x86_64 --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64 --> Processing Dependency: libstdc+...

    对应版本的库明明存在,mysql与centos版本也对应,但是就是提示Requires

    [root@11 mysql]# yum install mysql-community-server
    
    Loaded plugins: fastestmirror
    Setting up Install Process
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql-community-server.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: mysql-community-common(x86-64) = 8.0.16-1.el7 for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: mysql-community-client(x86-64) >= 8.0.11 for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.7)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libsasl2.so.3()(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Running transaction check
    ---> Package mysql-community-client.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: mysql-community-libs(x86-64) >= 8.0.11 for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.14)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    ---> Package mysql-community-common.x86_64 0:8.0.16-1.el7 will be installed
    ---> Package mysql-community-server.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.7)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libsasl2.so.3()(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Running transaction check
    ---> Package mysql-community-client.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.14)(64bit) for package: mysql-community-client-8.0.16-1.el7.x86_64
    ---> Package mysql-community-libs.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-libs-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-libs-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.14)(64bit) for package: mysql-community-libs-8.0.16-1.el7.x86_64
    ---> Package mysql-community-server.x86_64 0:8.0.16-1.el7 will be installed
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: systemd for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.7)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libstdc++.so.6(CXXABI_1.3.5)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libc.so.6(GLIBC_2.17)(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Processing Dependency: libsasl2.so.3()(64bit) for package: mysql-community-server-8.0.16-1.el7.x86_64
    --> Finished Dependency Resolution
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: systemd
    Error: Package: mysql-community-libs-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
    Error: Package: mysql-community-libs-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libc.so.6(GLIBC_2.14)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(CXXABI_1.3.7)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libsasl2.so.3()(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libc.so.6(GLIBC_2.17)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
    Error: Package: mysql-community-libs-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libc.so.6(GLIBC_2.14)(64bit)
    Error: Package: mysql-community-server-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.17)(64bit)
    Error: Package: mysql-community-client-8.0.16-1.el7.x86_64 (mysql80-community)
    Requires: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
    You could try using --skip-broken to work around the problem
    ** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
    2:postfix-2.6.6-8.el6.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
    2:postfix-2.6.6-8.el6.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
    2:postfix-2.6.6-8.el6.x86_64 has missing requires of mysql-libs
    

    原因及办法:我第一次安装成了el8的mysql-server,卸载之后,yum没有clean。

    1、yum update (可选)
    2、rpm -qa|grep mysql #找到已装的rpm包名
    3、rpm -e 包名 #卸载
    4、yum clean all #清缓存 关键!!

    展开全文
  • 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 ...

    1.缺少动态库问题,复制到同一目录也没找到

    编辑 vim /etc/ld.so.conf 将动态库目录添加进去,执行ldconfig即可

    include ld.so.conf.d/*.conf
    /root/poco/myPocoTest
    

    刷新

    sudo ldconfig
    

    或者临时刷新

    ~$ LD_LIBRARY_PATH=/usr/local/lib
    ~$ export LD_LIBRARY_PATH
    ~$ g++ poco.cpp -lPocoNet
    ~$ ./a.out
    

    2.libstdc++.so.6版本问题

    [root@jn myPocoTest]# ./a.out 
    ./a.out: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/poco/myPocoTest/libPocoFoundation.so.71)
    ./a.out: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/poco/myPocoTest/libPocoNet.so.71)
    ./a.out: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /root/poco/myPocoTest/libPocoNet.so.71)
    

    查看缺少GLIBCXX_3.4.20

    [root@jn myPocoTest]# 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_3.4.18
    GLIBCXX_3.4.19
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    

    原因是升级gcc时动态库没有替换旧的动态库文件

    查找编译过的gcc库文件位置:

    find / -name "libstdc++.so*"
    [root@jn myPocoTest]# find / -name "libstdc++.so*"
    /usr/lib64/libstdc++.so.6
    /usr/lib64/libstdc++.so.6.0.19
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
    /usr/local/gcc/lib64/libstdc++.so.6.0.20-gdb.py
    /usr/local/gcc/lib64/libstdc++.so.6
    /usr/local/gcc/lib64/libstdc++.so.6.0.20
    /usr/local/gcc/lib64/libstdc++.so
    /usr/local/gpsserv/libstdc++.so.6
    /usr/local/gpsserv_2/libstdc++.so.6
    /root/.debug/usr/lib64/libstdc++.so.6.0.19
    /root/lib/libstdc++.so.6
    /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
    /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /root/GCC_4.9.2/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /root/GCC_4.9.2/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
    /root/GCC_4.9.2/gcc-4.9.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /root/GCC_4.9.2/gcc-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /root/GCC_4.9.2/gcc-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
    /root/GCC_4.9.2/gcc-4.9.2/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /root/downloads/datahub_C++_sdk_14.0/lib/libstdc++.so.6
    /root/downloads/datahub_cpp_sdk_release_64/allfiles/libstdc++.so.6
    /root/downloads/datahub_cpp_sdk_release_64/lib/libstdc++.so.6
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/stage1-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/stage1-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/stage1-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/prev-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/prev-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28
    /var/lib/docker/overlay2/e05124a5a8cdb68cbf1b5394067bf87ba508301ed91d84c1d7cff3316c3a1e21/diff/tmp/tmp.QX7dilbd7Z/prev-x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /var/lib/docker/overlay2/70bba9113499bdc3ce4d083aee2c0c69e385cd1bb8596cd5b5658868e5aca6a7/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    /var/lib/docker/overlay2/70bba9113499bdc3ce4d083aee2c0c69e385cd1bb8596cd5b5658868e5aca6a7/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
    /var/lib/docker/overlay2/70bba9113499bdc3ce4d083aee2c0c69e385cd1bb8596cd5b5658868e5aca6a7/diff/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py
    /var/lib/docker/overlay2/53b08252aeea199eb2780e77b8c6cd8924eaf10120ab43993bdbe2380e3fc28f/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    

    发现存在相同,检查字符发现确实多了很多高版本的

    [root@jn myPocoTest]# strings /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/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_3.4.18
    GLIBCXX_3.4.19
    GLIBCXX_3.4.20
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    _ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
    _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5
    _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
    _ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5
    GLIBCXX_3.4.9
    _ZSt10adopt_lock@@GLIBCXX_3.4.11
    GLIBCXX_3.4.10
    GLIBCXX_3.4.16
    GLIBCXX_3.4.1
    _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4
    _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4
    _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCXX_3.4.5
    _ZNSs7_M_moveEPcPKcm@@GLIBCXX_3.4.5
    _ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
    _ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
    _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@@GLIBCXX_3.4.5
    _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4
    _ZSt10defer_lock@@GLIBCXX_3.4.11
    _ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4
    _ZNSs9_M_assignEPcmc@@GLIBCXX_3.4.5
    
    

    将该文件的软连接文件和源文件一起复制到错误提示的 /lib64 目录下即可

    [root@jn myPocoTest]# ll /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Mar  1 14:34 /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 -> libstdc++.so.6.0.20
    [root@jn myPocoTest]# cp /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /lib64/
    cp: overwrite ‘/lib64/libstdc++.so.6’? y
    [root@jn myPocoTest]# ls
    a.out             libPocoCrypto.so.71     libPocoData.so        libPocoDataSQLite.so.71  libPocoFoundation.so     libPocoJSON.so.71  libPocoMongoDB.so     libPocoNet.so.71     libPocoRedis.so     libPocoUtil.so.71  libPocoZip.so     version.cpp
    download.cpp      libPocoDataMySQL.so     libPocoData.so.71     libPocoEncodings.so      libPocoFoundation.so.71  libPocoJWT.so      libPocoMongoDB.so.71  libPocoNetSSL.so     libPocoRedis.so.71  libPocoXML.so      libPocoZip.so.71
    libPocoCrypto.so  libPocoDataMySQL.so.71  libPocoDataSQLite.so  libPocoEncodings.so.71   libPocoJSON.so           libPocoJWT.so.71   libPocoNet.so         libPocoNetSSL.so.71  libPocoUtil.so      libPocoXML.so.71   Makefile
    [root@jn myPocoTest]# cp /root/GCC_4.9.2/gcc-4.9.2/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20 /lib64/
    [root@jn myPocoTest]# ./a.out 
    usage: a <uri>
           Download <uri> to standard output.
           Works with http, ftp and file URIs.
    

    运行成功:

    [root@jn myPocoTest]# ./a.out http://121.196.173.100:9682/hello.html
    hello,from http server
    [root@jn myPocoTest]#
    
    展开全文
  • _GLIBCXX_VISIBILITY的含义及DSO

    gcc中_GLIBCXX_VISIBILITY的含义和DSO

    背景

    在查看gcc中包含的一些标准标头的来源(在/usr/include/c++/中),并在每个标头的顶部找到以下内容

    namespace std _GLIBCXX_VISIBILITY(default)
    {
    _GLIBCXX_BEGIN_NAMESPACE_VERSION
    
    	//...
    
    _GLIBCXX_END_NAMESPACE_VERSION
    } // namespace
    

    究竟是什么_GLIBCXX_VISIBILITY(default)

    源文件:gcc-9.1.0/libstdc+±v3/include/bits/c++config

    // Macros for visibility attributes.
    //   _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
    //   _GLIBCXX_VISIBILITY
    #define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
    
    #if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
    # define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))
    #else
    // If this is not supplied by the OS-specific or CPU-specific
    // headers included below, it will be defined to an empty default.
    # define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
    #endif
    
    // Inline namespace for symbol versioning.
    #if _GLIBCXX_INLINE_VERSION
    # define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __8 {
    # define _GLIBCXX_END_NAMESPACE_VERSION }
    

    因此,如果_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY为真,那么,它将扩展为:

    __attribute__ (( __visibility__ ("default")))
    

    如果_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY为假,则无效。

    __visibility__属性用于定义DSO文件中符号的可见性。可以用来隐藏DSO之外的符号。

    例如:

    __attribute__ ((__visibility__("default"))) void foo();
    __attribute__ ((__visibility__("hidden"))) void bar();
    

    函数foo()可以在DSO外部使用,而bar()基本上是私有的,只能在DSO中使用。

    您可以在此处详细了解__visibility__属性:https://gcc.gnu.org/wiki/Visibility

    限制符号可见性的原因:从动态库中尽可能少地输出符号是一个好的实践经验。输出一个受限制的符号会提高程序的模块性,并隐藏实现的细节。动态库装载和识别的符号越少,程序启动和运行的速度就越快。导出所有符号会减慢程序速度,并耗用大量内存。

    “default”:用它定义的符号将被导出,动态库中的函数默认是可见的。

    ”hidden”:用它定义的符号将不被导出,并且不能从其它对象进行使用,动态库中的函数是被隐藏的。default意味着该方法对其它模块是可见的。而hidden表示该方法符号不会被放到动态符号表里,所以其它模块(可执行文件或者动态库)不可以通过符号表访问该方法。

    要定义GNU属性,需要包含__attribute__和用括号括住的内容。可以将符号的可见性指定为visibility(“hidden”),这将不允许它们在库中被导出,但是可以在源文件之间共享。实际上,隐藏的符号将不会出现在动态符号表中,但是还被留在符号表中用于静态链接。

    导出列表由编译器在创建共享库的时候自动生成,也可以由开发人员手工编写。导出列表的原理是显式地告诉编译器可以通过外部文件从对象文件导出的符号是哪些。GNU用户将此类外部文件称作为”导出映射”

    DSO 是什么

    DSO动态共享对象,或者更不正式的shared library

    什么是隐藏符号

    隐藏符号是一个符号(即函数或数据对象的名称) 已使用隐藏链接编译,例如根据(GCC具体) 声明:

    int x __attribute__ ((visibility ("hidden")));
    

    如果它被隐藏了怎么能被引用

    它不可能,这是你被警告的内容。例如。链接时间警告:

    隐藏符号stat;在/usr/lib/libc_nonshared.a(stat.oS中由DSO引用
    “hidden symbol `stat’ in /usr/lib/libc_nonshared.a(stat.oS) is referenced
    by DSO”

    告诉您链接中的DSO引用了符号stat,和 链接器可以在stat中找到/usr/lib/libc_nonshared.a的定义, 但(显然)该定义不在引用它的DSO中 并且不能从该DSO引用,因为它是隐藏的。

    如果问题DSO未正确构建以供使用,则会出现此问题 作为DSO。见this example 并按照解决方案的后续行动。

    继续进行OP的跟进

    如果某些DSO已经引用了隐藏符号,那么为什么问题出在DSO上?

    链接器说:

    DSO X包含对符号S的引用。我可以找到符号S的定义是另一个链接模块Y, 但是该定义无法满足X 动态中的引用(即在运行时),因为SY模块中隐藏了链接}}

    我可以确认问题来自非共享对象[…] [但]我没有在我的非共享对象中明确隐藏这些符号。

    您可能没有明确标记隐藏在非共享对象中的任何符号。根据它的构建方式,符号 默认情况下可能会隐藏,除非明确标记。

    假设非共享对象为Y,并且涉嫌隐藏的符号为libnonshared.a。运行:

    foo
    

    获取有关objdump -t libnonshared.a中符号的信息。在输出中,查找libnonshared.a的条目。它是否包含标记foo? - 例如

    .hidden
    

    此条目表示0000000000000000 g F .text 000000000000000b .hidden foo是一个全局符号(标记为foo - 这就是链接器能够看到它的原因)它隐藏动态链接。

    如果情况确实如此,那么您需要修复g的版本,以便它不会隐藏libnonshared.a。 否则该符号无被引用

    reference

    [1]. https://blog.csdn.net/fengbingchun/article/details/78898623

    [2]. https://www.thinbug.com/q/29270208

    [3]. https://www.thinbug.com/q/23696585

    展开全文
  • 运行应用程序时出现GLIBCXX_3.4.26not found问题一、业务分析1.运行环境2.业务场景3.错误分析4.解决思路二、具体操作步骤1.查询现有的支持:2.查找本机中是否存在升级3.获取GLIBCXX_3.4.26包3.1 下载GLIBCXX_3.4.263....
  • GLIBCXX_3.4.9' not found - 解决办法   在Linux中安装交叉编译器arm-linux-gcc 4.4.3,然后编译mini2440内核出错:  /usr/lib/libstdc++.so.6: version  GLIBCXX_3.4.9' not found:  在RHEL5中安装交叉...
  • GLIBCXX_3.4.21 not found

    千次阅读 2020-11-10 10:47:17
    ./a.out: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./a.out) 解决办法 新版本文件在/usr/local/lib64/ 内,而查找是从/usr/lib64 先的,因此最好是将新文件拷贝到/usr/lib64 并...
  • Centos/redhat下GLIBCXX_3.4.20的问题

    千次阅读 2020-08-13 10:49:34
    rror: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found undefined reference to `std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_sync...
  • 把libstdc++.so.6.0.13这个资源放到/usr/lib文件夹下。删除/usr/lib/libstdc++.so.6。 在输入命令ln -s /usr/lib/libstdc++.so....可以输入strings /usr/lib/libstdc++.so.6 | grep GLIBC查看GLIBCXX_XXX是否在其中
  • Centos 升级GLIBCXX3.4.25

    千次阅读 2018-10-05 10:51:33
    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 ...
  • 通过 strings /lib64/libstdc++.so.6 | grep GLIBC 查看,发现当前系统最高GLIBCXX 为3.4.19, 需要升级。 1. 查看当前gcc 版本 gcc -v 2. 升级gcc 版本 2.1 安装所需工具: yum...
  • 升级GLIBCXX 有些so库提示找不到GLIBCXX_3.4.21。 执行: sudo find / -name "libstdc++.so*" 我们将最新的动态库替换上去, sudo cp /var/lib/docker/overlay2/35378f47e4e0b5d5d03d1369c260c4c13db292626b...
  • GLIBCXX_3.4.21' not found问题小记

    千次阅读 2019-12-16 17:15:43
    /bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /bin/mysqld) Connection closed by foreign host.lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' n...
  • 在32位linux操作系统上编译QT, /usr/lib/libstdc++.so.6报如上问题时,请提取32bit文件夹下的libstdc++.so.6.0.10文件。 后执行: os.system("rm /usr/lib/libstdc++.so.6") os.system("cp ./libstdc++.so.6.0.10 ...
  • --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.19)(64bit) for package: clickhouse-server-19.8.3.8-1.el7.x86_64 --> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) for package: ...
  • 看看这里面GLIBCXX的版本: strings /opt/conda/lib/libstdc++.so.6.0.24 | grep GLIBC 已经有GLIBCXX_3.4.22,只是找不到。这种情况修改软链接就可以了。 看一下现有的软链接: ll libstdc++.so.6 修改软链接: ln...
  • GLIBCXX_3.4.15 not found

    2020-06-02 14:16:33
    https://www.cnblogs.com/ct1104/p/3761264.html
  • /usr/lib64/libstdc++.so.6: version `glibcxx_3.4.17' not found 、ImportError: /lib64/libc.so.6: version `GLIBC_2.16' not found ... 归根结底这类问题:由于Linux内核不支持,gcc版本太低!!!! 查看系统...
  • 【解决办法】 1、首先我查看了下/lib64/libstdc++.so.6这个文件中关于GLIBCXX的信息: strings /lib64/libstdc++.so.6 | grep GLIBCXX 很显然,确实没有GLIBCXX_3.4.21。 2、搜索anaconda中的libstdc++.so.6相关的...
  • version `GLIBCXX_3.4.20‘ not found

    千次阅读 2020-12-08 17:34:30
    问题原因:如下图所示,/usr/lib/x86_64-linux-gnu/libstdc++.so.6没有GLIBCXX_3.4.20 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX 解决方法: 输入如下命令,搜索所有的libstdc++.so.6...
  • strings /lib/libstdc++.so.6 | grep GLIBCXX 就会发现没有 GLIBCXX_3.4.21 输出 可以在交叉编译器里查询有无这个库 libstdc++.so.6.0.21或者是更高版本 替换ARM板里的这个库文件就行了 我是在这里找到的: /gcc-...
  • 解决报错version `GLIBCXX_3.4.20' not found 具体流程参考 https://blog.csdn.net/zhangyingna667/article/details/107290495/ 进行到 3.4删除原来软连接: rm -rf libstdc++.so.6 3.5将默认库的软连接指向最新动态...
  • 在手动升级gcc后,编译或运程程序可能会存在找不到适当的GLIBCXX版本的问题,(目前我升级到了gcc11.2.0,对应版本是GLIBCXX_3.4.29),在执行命令: strings /usr/lib64/libstdc++.so.6|grep GLIBC |more 时, 部分...
  • 什么是_GLIBCXX_CONSTEXPR

    2019-12-12 23:16:41
    这其实是c++config.h中为constexper定义的一套宏 在C++11以后的版本支持 根据本机支持C++的C++版本不同进行不同的替换 但现在各个版本都相同 下面是源码部分 ...#ifndef _GLIBCXX_CONSTEXPR # if __c...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,824
精华内容 2,329
关键字:

glibcxx