关于Linux共享库文件的一些常见问题及解决办法!
1.应用程序执行须要库的支持
在制做自己的发行版时常常须要判定某条命令须要什么共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;
在Linux环境下通过ldd命令即可实现,在终端下执行:
ldd/bin/ls。(注意file指令)
即可得到/bin/ls命令的相关共享库文件列表:
libtermcap.so.2=>/lib/libtermcap.so.2
libc.so.6=>/lib/libc.so.6
/lib/ld-linux.so.2=>/lib/ld-linux.so.2
注意:
在ldd命令复印的结果中,“=>”左边的表示该程序须要联接的共享库之so名称,左边表示由Linux的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下,/etc/ld.so.conf文件中包含有默认的共享库搜索路径。
2知识点:
假如使用ldd命令时没有找到对应的共享库文件和其具体位置linux 没有ldd 命令linux驱动下载,可能是两种情况导致的:
1.共享库没有安装在该系统中;
2.共享库保存在/etc/ld.so.conf文件列举的搜索路径之外的位置。
一般情况下,许多开放源代码的程序或函数库就会默认将自己安装到/usr/local目录下的相应位置(如:/usr/local/bin或/usr/local/lib),便于与系统自身的程序或函数库相区别。而许多Linux系统的/etc/ld.so.conf文件中默认又不包含/usr/local/lib。为此,常常会出现早已安装了共享库linux 没有ldd 命令,而且却未能找到共享库的情况。具体解决办法如下:
检测/etc/ld.so.conf文件,假如其中缺乏/usr/local/lib目录,就添加进去;注意:在更改了/etc/ld.so.conf文件或则在系统中安装了新的函数库以后,须要运行一个命令:ldconfig,该命令拿来刷新系统的共享库缓存,即/etc/ld.so.cache文件。为了减轻共享库系统的库搜索时间,共享库系统维护了一个共享库so名称的缓存文件/etc/ld.so.cache。为此linux 论坛,在安装新的共享库以后,一定要运行ldconfig刷新该缓存。