linux strings 用法,解决类似libstdc++.so.6: version `CXXABI_1.3.11'问题

发布时间 2023-07-26 17:46:18作者: 无左无右

参考https://blog.csdn.net/Aliven888/article/details/122428668

./bin/horizon: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /userdata/apa/lib/libadmultivioplugin.so.1)

分析:
x3 板子中系统使用的是 libstdc++.so.6.0.22 , 而我们 Horizon 在编译时使用的是 libstdc++.so.6.0.25 。 也就是出现了高版本编译,但是在低版本时使用, 而低版本是不支持高版本的,所以升级 X3 板子系统中所使用的该库,以保证版本的一致。

```bash
# 两个 C++ 库的区别
libstdc++.so.6.0.22
libstdc++.so.6.0.25


aliven@Aliven:~$  strings libstdc++.so.6.0.22 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_TM_1

aliven@Aliven:~$ strings libstdc++.so.6.0.25 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_TM_1

解决方案:

sudo find /usr -name "libstdc++.so.*"      #查找库的位置

# 开发版位置在 /usr/lib 中, 这里就以该路径举例,实际请以自己系统查找路径稳准。
sudo cp libstdc++.so.6.25 /usr/lib
sudo cd /usr/lib/
sudo rm libstdc++.so.6 ibstdc++.so.6.0.22
sudo ln -s libstdc++.so.6.0.25 libstdc++.so.6  # 建立软链接