找不到“GLIBCXX_3.4.9”,有时仅

时间:2017-04-18 11:48:36

标签: c++ g++ libstdc++

我得到这个错误

/ usr / lib64 / libstdc ++。so.6:找不到版本`GLIBCXX_3.4.9'

当我启动程序时随机

。作为一种解决方法,我可以再次启动它,它可以正常工作 - 没有问题。

为什么我有时会出现此错误,有时我没有?

我的主要问题是我想多次启动我的程序,并使用类似的脚本执行此操作:

for i...
do
./myProgram.o $i
done

我因为这个错误而总是错过一些参赛作品。

myProgram.o是用c ++编写的,如果有任何帮助的话。

我没有管理员权限,我无法安装任何东西,我正在通过PuTTy在ssh集群上工作。

告诉我是否需要任何其他信息

1 个答案:

答案 0 :(得分:0)

  

我在启动程序时随机出现此错误。

这不应该发生。

我能想到的唯一解释是您的程序有时使用不同版本的libstdc++.so,如果您的$LD_LIBRARY_PATH包含NFS安装的目录,则会发生这种情况有时候无法使用。

您可以通过运行确认或反驳此猜测:

for i ...; do
  LD_DEBUG=files ./myProgram $i &> /tmp/my.$i.LOG
done

然后grep libstdc++ /tmp/my.*.LOG并查看每次运行是否选择相同版本的libstdc++.so

P.S。我希望你实际上没有命名你的程序myProgram.o - 该名称通常应该对应于可重定位目标文件,而不是完全链接的可执行文件。