error while loading shared libraries解決方法

在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了.

1
error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory

出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。
一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。
所以在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行,/sbin/ldconfig –v更新一下配置即可。
centos下安装qt时出现/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9’ not found
在安装qt-creator的时候运行这个IDE就出现了这个问题,是由于libstdc++.so.6的版本过低,需要下载个新的重新建立软连接

linux 执行 strings /usr/lib/libstdc++.so.6 | grep GLIBC
返回结果没有GLIBCXX_3.4.9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

执行:

1
ls -l  /usr/lib/libstdc++.so.6

发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8
其实这里需要使用libstdc++.so.6.0.10
从网上下载这个文件,然后 rm -rf /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8 软链接删除,重新做

1
ln -s /usr/lib/libstdc++.so.6.10  /usr/lib/libstdc++.so.6

更新历史

why when
创建 2011年12月31日
更新 2019年12月9日