尝试执行任何 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 中的符号,而您的版本可能较低。更新您的库,这是最简单的方法。或者您可以执行类似此处的操作