在调用C++类库时出现
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by
/opt/wx/satellite-orbitmath/orbitmath_lib_x86_centos/libxtbsmath.so
首先查询一下所有的libstdc++.so.6
sudo find / -name ‘libstdc++.so.6*’
查询结果如下
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/local/hostguard/lib/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.26
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6~
之后查找报错的/usr/lib64/libstdc++.so.6下面看到时没有GLIBCXX_3.4.21的
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
然后依次查看了
/usr/local/hostguard/lib/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
发现都没有GLIBCXX_3.4.21这个版本
于是就去下载了一个libstdc++.so.6.0.26高版本放到/usr/lib64路径下
然后执行如下命令进行软连接
sudo ln -bs /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
再次调用就可以找到GLIBCXX_3.4.21了,完美解决
附libstdc++.so.6.0.26下载地址
libstdc++.so.6.0.26下载地址
在CentOS上使用Java JNI调用C++库时遇到`libstdc++.so.6: version `GLIBCXX_3.4.21' not found`错误。通过查找系统中已存在的libstdc++.so.6版本,发现缺少3.4.21。下载更高版本的库文件并创建软链接,成功解决问题。
1211

被折叠的 条评论
为什么被折叠?



