1 回答
TA贡献1836条经验 获得超3个赞
由于-u开关,它正在打印。在ldd的手册页中
-u, --unused
Print unused direct dependencies. (Since glibc 2.3.4.)
什么是未使用的直接依赖项(这对我来说是矛盾的)?
这是恕我直言->库您建立二进制文件,这是没有必要的。IE
gcc -L<LD_PATH> -Wall -o assistant assistant.c -lA -lB -lC
它将所有ABC列为依赖项,但它们可能实际上未以二进制形式使用。主要原因是Makefile中通用LDFLAGS。
是否可以找出Qt Assistant是否确实需要未使用的直接依赖项(然后再启动它并等待错误)?
不,我认为,只有在调用特定函数时才可以使用它。还有机会您可以使用此功能,不会看到错误。不过,如果您决定这样做。有一种疯狂的方式。列出所有调用的函数,然后检查需要哪些所有库。(不确定这一点,但我认为基于类似的逻辑ldd可以打印此内容。)根据手册页ldd可能运行二进制文件。因此,基本上可以说是您提到的一种情况。但不广泛。
Be aware, however, that in some circumstances, some versions of
ldd may attempt to obtain the dependency information by directly
executing the program. Thus, you should never employ ldd on an
untrusted executable,
since this may result in the execution of arbitrary code.
上面的命令行之间到底有什么区别?为什么第一个列出libQt5Sql但第二个没有列出?
差异是 -r
-r, --function-relocs
Perform relocations for both data objects and functions, and
report any missing objects or functions (ELF only).
简而言之,它处理加载的库函数。建议使用ldd -u -r在这个错误在RedHat。
- 1 回答
- 0 关注
- 282 浏览
添加回答
举报