升级linux c++标准库

时间:2024-05-20 11:16:21

最近在自己的虚拟机运行某个项目用到的程序的时候,报错:

./yimi_camera_proxy: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./libexport_cpp_utility.so)
./yimi_camera_proxy: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libexport_cpp_utility.so)
./yimi_camera_proxy: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libexport_cpp_osgi.so)
./yimi_camera_proxy: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libexport_cpp_dsb.so)
./yimi_camera_proxy: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./libboost_locale-mt.so.1.58.0)
./yimi_camera_proxy: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libboost_locale-mt.so.1.58.0)

在网上搜了一下,是程序用到了比较高版本的c++运行时库,但是本机器没有那么高版本的库,于是需要升级。

我的机器是centos 7.5 64位的,于是在网上找了高版本的库libstdc++.so.6.0.26,升级版本操作如下:

(1)下载下来的libstdc++.so.6.0.26文件放到目录/lib64

(2)删除原来的软连接libstdc++.so.6(原来的软连接内容为libstdc++.so.6 -> libstdc++.so.6.0.19)

(3)新建软连接:ln -s libstdc++.so.6.0.26 libstdc++.so.6

这样就升级好了版本库,然后查看一下:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

升级linux c++标准库

升级完后启动程序就没问题了。