如何检测python ctypes加载的共享对象?

问题描述 投票:0回答:1

我需要将共享对象复制到一个包中进行分发。 在这之前,用ldd就够了。

现在我遇到了 https:/github.comemcconvillewandblobmasterwandapi.py。 其中使用了ldd无法检测到的ctypes。

我怎样才能检测到加载了哪些共享对象,从而可以复制它们?

python shared-libraries ctypes
1个回答
1
投票

一般情况下没有办法做到这一点。考虑一个程序,它做到了 ctypes.util.find_library(sys.argv[1]). 你不可能提前知道它将尝试加载哪些库。

在你的特殊情况下,你应该可以通过封装 ctypes 来记录它在执行过程中加载的所有库。请注意,只有当你的执行在任何一次执行中加载了所有它需要的库时,这才会有效,所以要确保你击中了所有相关的代码路径。

© www.soinside.com 2019 - 2024. All rights reserved.