是否有一种简单有效的方法来知道给定的动态链接ELF缺少从C / C ++程序 内部 运行所需的.so ?
ELF
我需要一个功能与相似的程序ldd,而无需尝试执行ELF来找出系统中的(met / unmet)依赖项。也许通过某个库询问ld- linux.so实用程序?(我是linux这部分的新手=)
ldd
注意:读取的源代码ldd对我的意图不是很有帮助:似乎ldd实际上是在分叉另一个进程并执行该程序。
如果不可能不执行就知道某个程序具有未满足的依赖关系,那么是否有某种方法至少可以ELF从我的程序中快速列出所有所需的.so ?
在此先感谢=)
根据ld.so(8),将环境变量设置LD_TRACE_LOADED_OBJECTS为非空字符串将得到类似ldd的结果(而不是正常执行二进制文件或库)。
LD_TRACE_LOADED_OBJECTS
setenv("LD_TRACE_LOADED_OBJECTS", "1", 1); FILE *ldd = popen("/lib/libz.so");