原因:默认使用的libstdc++支持的GLIBCXX版本 和 so引用的版本不一致。
例如 要加载的动态链接库使用 gcc 82 编译生成的,而默认引用的基础so库(libstdc++.so)是gcc 482生成的。
解决方法:
最核心的是使两者的版本一致。是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。
可以升级执行任务的机器gcc版本,然后把 /usr/lib64/libstdc++.so.6 软连接 改成高版本的,如
删除原来的软连接:rm -rf libstdc++.so.6 (需要root权限)
建立新的软连接: ln -s /opt/compiler/gcc-8.2/lib/libstdc++.so.6.0.25 libstdc++.so.6
查看动态链接库支持的GLIBCXX 版本:
strings /opt/compiler/gcc-8.2/lib/libstdc++.so.6.0.25|grep GLIBCXX