(1)在 linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了:./tests: 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更新一下配置即可。
(2):mplayer: error while loading shared libraries: libartsc.so.0: cannot open shared object file: No such file or directory
错误分析:
在运行mplayer命令的时候发生如上的错误,经过一个小时的找错,终于解决不能播放视频的问题。
cannot open shared object file: No such file or directory
这句话的意思是 不能打开共享工程文件,没有这样一个文件或者目录,也就是说在执行mplayer命令的时候,需要找到相应的链接库,只要必须的库缺少其中一个,就会发生上面的错误。这里,其实就是缺少libartsc.so.0这个动态库。
错误解决:
[root@localhost QtVod]# which mplayer
/bin/mplayer
接着执行
[root@localhost QtVod]# ldd /bin/mplayer
linux-gate.so.1 => (0x008b2000)
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x07b0c000)
libsmbclient.so.0 => /usr/lib/libsmbclient.so.0 (0x00a95000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00110000)
libz.so.1 => /usr/lib/libz.so.1 (0x00442000)
libmng.so.1 => /usr/lib/libmng.so.1 (0x00490000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00136000)
libungif.so.4 => /usr/lib/libungif.so.4 (0x00457000)
libasound.so.2 => /lib/libasound.so.2 (0x076bf000)
libdl.so.2 => /lib/libdl.so.2 (0x00423000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00429000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00967000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x07c92000)
libm.so.6 => /lib/libm.so.6 (0x003fa000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x006ea000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00582000)
libXss.so.1 => /usr/lib/libXss.so.1 (0x077a0000)
libXv.so.1 => /usr/lib/libXv.so.1 (0x00158000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00171000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00a51000)
libXxf86dga.so.1 => /usr/lib/libXxf86dga.so.1 (0x0015d000)
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00e34000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x006fc000)
libartsc.so.0 => not found
libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x00904000)
libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00a8c000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00174000)
libesd.so.0 => /usr/lib/libesd.so.0 (0x0027f000)
libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x078f1000)
libc.so.6 => /lib/libc.so.6 (0x002b2000)
libgif.so.4 => /usr/lib/libgif.so.4 (0x00212000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0021b000)
libresolv.so.2 => /lib/libresolv.so.2 (0x006d5000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0024d000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00909000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0076a000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00844000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x006d0000)
libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0x004fb000)
liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0x00264000)
liblcms.so.1 => /usr/lib/liblcms.so.1 (0x00459000)
librt.so.1 => /lib/librt.so.1 (0x00272000)
/lib/ld-linux.so.2 (0x00294000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x0057d000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00687000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00169000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00939000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x0083f000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x077cb000)
libssl.so.6 => /lib/libssl.so.6 (0x009e9000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x00ce8000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00535000)
libsepol.so.1 => /lib/libsepol.so.1 (0x0086a000)
见红色高亮部分,
那么,很明显,就是缺少libartsc.so.0这个动态库,那么我们到网上下载这个库,放到/usr/lib里面。
最后执行,ln -s /usr/lib/libartsc.so.0 /lib/libartsc.so.0
执行完后,基本没问题了。如果你不确定,你就执行ldd /bin/mplayer再看一下,刚才那个红色高亮部分就变成了
libartsc.so.0 => /usr/lib/libartsc.so.0 (0x00163000)
再次执行mplayer ./mv.wmv 意思就是执行当前目录下的mv.wmv这个视频文件。可以播放的话,问题就解决了。