linux / gcc:来自C/C++程序的ldd功能

是否有一种简单有效的方法可以知道给定的动态链接ELF是否缺少必需的.so来运行,所有这些都来自C/C++程序的内部?

我需要一个与ldd具有某些相似功能的程序,而不是试图执行ELF来找出系统中的(met / unmet)依赖项.也许通过一些库询问ld-linux.so实用程序? (我是这部分linux的新手=)

NOTE: reading the source code of ldd was not very helpful for my intentions: it seems that ldd is in fact forking another process and executing the program.

如果在不执行程序的情况下无法知道某个程序是否存在未满足的依赖项,那么是否有某种方法可以在我的程序中快速列出所有ELF所需的.so所有内容?

在此先感谢=)

解决方法

根据 ld.so(8),将环境变量LD_TRACE_LOADED_OBJECTS设置为非空字符串将给出类似ldd的结果(而不是正常执行二进制文件或库).
setenv("LD_TRACE_LOADED_OBJECTS","1",1);
FILE *ldd = popen("/lib/libz.so");

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...