CentOS 中的 GLIBCXX_3.4.21

CentOS 中的 GLIBCXX_3.4.21

我在 Ubuntu 机器上创建了 C++ 应用程序。我已将二进制文件复制到 Centos 机器。出现错误:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

我已经安装了我认为需要的软件包:

yum install gcc gcc-c++ make openssl-devel

仍然遇到同样的错误。

然后我安装了整个开发工具:

yum groupinstall 'Development Tools'

仍然有同样的错误。如何解决这个问题呢?

UPD

我决定glibc在命令的帮助下检查我的机器中有哪些版本ldd --version

Ubuntu: 2.23
Centos6.9: 2.12

为什么CentOS要抱怨GLIBCXX_3.4.21Ubuntu 拥有glibc2.23 版本?

答案1

这在 CentOS7 上对我有用

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths

答案2

不存在(在还启用了 EPEL 存储库的 Centos 7 系统上)

$ sudo yum whatprovides '*libstdc++*' | egrep -o '3\.4\.[0-9]+' | sort -u
...

因此,您需要找到一个提供它的存储库,或者自己编译该库的适当版本,并可能修补您的二进制文件以使用该库的适当版本。或者,考虑到3.4.19这是上面命令为我提供的最高数字(对于 Centos 7;Centos 6 或更早版本无疑会有较低的可用数字)。

相关内容