如何解决我们可以在文件中包含一个 .so 文件 LD_PRELOAD 吗?
我有一个已编译并可能用 C 编写的文件。该文件需要一个 .so 文件(库文件)。
C 编译文件名为 /usr/local/solar/excusekey
,.so 库文件为 /usr/local/libsolar/libexcuse.so
当我删除 /usr/local/libsolar/libexcuse.so
然后我运行 /usr/local/solar/excusekey
然后它显示一个错误:
ERROR : ld.so object '/usr/local/libsolar/libexcuse.so' from
LD_PRELOAD cannot be preloaded: ignored.
但是当我运行 unset LD_PRELOAD
并再次运行 /usr/local/solar/excusekey
时,它显示相同的错误。
/usr/local/solar/excusekey
是否在 C 代码中加载了 libexcuse.so 库?或者有其他技巧或方法吗?
解决方法
/usr/local/solar/excusekey 是否在 C 代码中加载 libexcuse.so 库?
在对 excusekey
一无所知的情况下,我们无法判断。
可以编写一个应用程序来检查 LD_PRELOAD
是否包含所需的库,如果没有,则设置 LD_PRELOAD
并重新exec
本身。
这是否是这里正在发生的事情是任何人的猜测。
在 strace -s1024 -fve execve excusekey
下运行应用程序可能会提供有关应用程序正在做什么的线索。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。