【发布时间】:2018-07-21 17:32:39
【问题描述】:
我在 Ubuntu 机器上创建了 c++ 应用程序。我已将二进制文件复制到 Centos 机器。出现错误:
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
我决定在 ldd --version 命令的帮助下检查我的机器中有哪些版本的 glibc:
Ubuntu: 2.23
Centos6.9: 2.12
为什么 CentOS cmplain 关于 GLIBCXX_3.4.21,而 Ubuntu 拥有 glibc 版本 2.23?
【问题讨论】:
-
GLIBC != GLIBCXX。前者用于glibc的版本符号,后者用于libstdc++的符号。这说明你的 CentOS6 系统上的 libstdc++ 版本太旧了。
-
你的意思是 GLIBCXX_3.4.21 menas
GLIBC ver. 3.4和libstdc++ is ver. 21?那为什么命令ldd --version会带来2.12和2.23? -
不,GLIBCXX_3.4.21 不会告诉您有关 GLIBC 版本的任何信息。而
ldd --version只会告诉您 GLIBC 版本,它根本无法检测您机器上的 libstdc++ 版本。您可能想看看gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html#abi.versioning 和stackoverflow.com/questions/10354636/…
标签: c++ linux ubuntu centos glibc