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

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

是否有一种简单有效的方法可以知道给定的动态链接ELF是否缺少必需的.so来运行,所有这些都来自C/C++程序的内部? 我需要一个与ldd具有某些相似功能的程序,而不是试图执行ELF来找出系统中的(met / unmet)依赖项.也许通过一些库询问ld-linux.so实用程序? (我是

是否有一种简单有效的方法可以知道给定的动态链接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");

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/zhonghe/fwq/linux/20201215/13622.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部