linux strings 用法,解决类似libstdc++.so.6: version `CXXABI_1.3.11'问题
参考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 # 建立软链接
好记性不如烂键盘---点滴、积累、进步!