红联Linux门户
Linux帮助

Linux下共享库如何快速定位

发布时间:2016-09-02 10:16:48来源:linux网站作者:HaveFunInLinux
有些情况下可能会想知道,我这个程序链接的库到底是在哪个目录下。
 
有两种方式可以简单的处理。
1.静态查找
$ locate lib_name
2.动态执行
$ strace app 2>&1 | grep lib_name
 
下面举一下例子。
ubuntu 下 64位的 ls 链接到了libselinux.so.1这个库上。
那我们要找这个库在哪里。
 
1.静态查找
$ locate libselinux.so.1
/lib/i386-linux-gnu/libselinux.so.1
/lib/x86_64-linux-gnu/libselinux.so.1
我们可以看到有两个位置,一个是32 bit,另一个是 64 bit。
因为我们知道 ls 是64位的,所以对应的库应该是:/lib/x86_64-linux-gnu/libselinux.so.1
 
2.动态执行
$ strace ls 2>&1 | grep libselinux.so.1
open("/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
通过 open 这个系统调用我们知道了用的是: /lib/x86_64-linux-gnu/libselinux.so.1
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23812.html