Yemilice

博客已经迁移:https://www.yemilice.com/ 文章不会再双更新,感谢多年陪伴,新博再见。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

(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这个视频文件。可以播放的话,问题就解决了。

posted on 2016-12-24 13:22  Yemilice  阅读(753)  评论(0编辑  收藏  举报