GLIBCXX_3.4.21 未在文件 libstdc++.so.6 中定义,带有链接时间参考

GLIBCXX_3.4.21 未在文件 libstdc++.so.6 中定义,带有链接时间参考

尝试执行任何 C++ 程序时,我收到此错误。完整的错误消息是:

./main: relocation error: ./main: symbol _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

在我的 /usr/local/lib64 文件夹中,它们似乎都在那里:

libssp.so.0.0.0 libstdc++.a libstdc++fs.a libstdc++fs.la libstdc++.la libstdc++.so libstdc++.so.6 libstdc++.so.6.0.21 libstdc++.so.6.0.21-gdb.py libsupc++.a libsupc++.la

在我的 ./include 文件夹中,所有 C++stdlib 标头都在那里,它们似乎正在工作,因为如果我有语法错误或其他错误,我会从它们那里得到错误,见鬼,文件甚至可以编译,但我在运行时得到这个错误。我还没有尝试简单地重新安装所有库,因为我不完全确定这是否有必要。有人能帮我解释一下这个错误吗?

我尝试了此站点上的 GLIB_3.4.15 错误页面上建议的各种修复方法,但要么是我错误地遵循了这些说明,要么它们对我没有作用。

我正在运行 Ubuntu 14.04 LTS,我的 GCC 版本是 5.3.0

答案1

这是因为它正在寻找 GLIBCXX_3.4.21 中的符号,而您的版本可能较低。更新您的库,这是最简单的方法。或者您可以执行类似此处的操作

https://stackoverflow.com/questions/4032373/linking-against-an-old-version-of-libc-to-provide-greater-application-coverage

https://stackoverflow.com/questions/32577224/unable-to-use-stdchrono-with-stdfuture-glibcxx-3-4-19-not-found?noredirect=1&lq=1

相关内容