con*_*roy 6 linux linker dependencies gcc ldd
有没有一种简单而有效的办法知道一个给定的动态链接ELF
是缺少必要的.所以它的运行,所有从内一个C/C++程序的?
我需要一个具有某些类似功能的程序ldd
,而不是试图执行ELF
以找出系统中的(met/unmet)依赖项.也许通过一些库询问ld-linux.so实用程序?(我是这部分linux的新手=)
注意:阅读源代码
ldd
对我的意图不是很有帮助:它似乎ldd
实际上是在分支另一个进程并执行程序.
如果在不执行程序的情况下无法知道程序是否存在未满足的依赖项,是否有某种方法可以至少快速地ELF
从我的程序中列出所有的.so所需的内容?
在此先感谢=)
根据ld.so(8),将环境变量设置LD_TRACE_LOADED_OBJECTS
为非空字符串将给出类似ldd
结果(而不是正常执行二进制文件或库).
setenv("LD_TRACE_LOADED_OBJECTS", "1", 1);
FILE *ldd = popen("/lib/libz.so");
Run Code Online (Sandbox Code Playgroud)