【发布时间】:2020-06-06 18:18:14
【问题描述】:
我需要将共享对象复制到一个包中以进行分发。到此为止,ldd 就足够了。
我现在遇到了https://github.com/emcconville/wand/blob/master/wand/api.py,它使用了 ldd 无法检测到的 ctype。
如何检测加载了哪些共享对象以便复制它们?
【问题讨论】:
标签: python shared-libraries ctypes
我需要将共享对象复制到一个包中以进行分发。到此为止,ldd 就足够了。
我现在遇到了https://github.com/emcconville/wand/blob/master/wand/api.py,它使用了 ldd 无法检测到的 ctype。
如何检测加载了哪些共享对象以便复制它们?
【问题讨论】:
标签: python shared-libraries ctypes
一般来说没有办法做到这一点。考虑一个执行ctypes.util.find_library(sys.argv[1]) 的程序。您不可能提前知道它将尝试加载哪些库。
在您的特定情况下,您应该能够通过包装ctypes 来记录它在执行期间加载的所有库来解决这个问题。但是请注意,这只有在您的执行加载了它在任何执行时需要的所有库时才有效,因此请确保您点击了所有相关的代码路径。
【讨论】: