我得到这个错误
/ usr / lib64 / libstdc ++。so.6:找不到版本`GLIBCXX_3.4.9'
当我启动程序时随机。作为一种解决方法,我可以再次启动它,它可以正常工作 - 没有问题。
为什么我有时会出现此错误,有时我没有?
我的主要问题是我想多次启动我的程序,并使用类似的脚本执行此操作:
for i...
do
./myProgram.o $i
done
我因为这个错误而总是错过一些参赛作品。
myProgram.o是用c ++编写的,如果有任何帮助的话。
我没有管理员权限,我无法安装任何东西,我正在通过PuTTy在ssh集群上工作。
告诉我是否需要任何其他信息
答案 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
- 该名称通常应该对应于可重定位目标文件,而不是完全链接的可执行文件。