我需要将共享对象复制到一个包中进行分发。 在这之前,用ldd就够了。
现在我遇到了 https:/github.comemcconvillewandblobmasterwandapi.py。 其中使用了ldd无法检测到的ctypes。
我怎样才能检测到加载了哪些共享对象,从而可以复制它们?
一般情况下没有办法做到这一点。考虑一个程序,它做到了 ctypes.util.find_library(sys.argv[1])
. 你不可能提前知道它将尝试加载哪些库。
在你的特殊情况下,你应该可以通过封装 ctypes
来记录它在执行过程中加载的所有库。请注意,只有当你的执行在任何一次执行中加载了所有它需要的库时,这才会有效,所以要确保你击中了所有相关的代码路径。