是否有编程方式(系统调用?)可以在Linux上列出共享库依赖项?而不是使用 ldd
...
是否有编程方式(系统调用?)可以在Linux上列出共享库依赖项?而不是使用 ldd
...
readelf -Wa lib.so|grep NEEDED
Gentoo Linux有一个名为lddtree.sh的脚本 http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.sh?revision=1.22&content-type=text%2Fplain
你可能会发现它很有用。
#!/bin/bash
#
# Use rpm to recursively list dependencies of all files in a directory
#
# Syntax:
# lsdep path/to/directory
# Example:
# lsdep /usr/src/kernels/`uname -r`/
find $1 -type f -exec sh -c 'res=`echo '{}' | /usr/lib/rpm/find-requires`; [ -n "$res" ] && (echo;echo file '{}'; echo $res)' \;
将LD_TRACE_LOADED_OBJECTS环境变量设置为非空字符串,然后运行您的二进制文件。查看this手册页面。
LD_TRACE_LOADED_OBJECTS
(ELF only) If set to non-empty string, causes the program to list its dynamic library dependencies, as if run by ldd(1), instead of running normally.
ldd
)以了解它的功能。 - Karoly Horvath