python - 如何检测python ctypes加载的共享对象
问题描述
我需要将共享对象复制到一个包中进行分发。到此为止, ldd 就足够了。
我现在遇到了https://github.com/emcconville/wand/blob/master/wand/api.py,它使用了 ldd 未检测到的 ctypes。
如何检测加载了哪些共享对象以便复制它们?
解决方案
一般没有办法做到这一点。考虑一个程序ctypes.util.find_library(sys.argv[1])
。您不可能提前知道它将尝试加载哪些库。
在您的特定情况下,您应该能够通过包装ctypes
记录它在执行期间加载的所有库来解决这个问题。但是请注意,这仅在您的执行加载了它在任何执行时需要的所有库时才有效,因此请确保您点击了所有相关的代码路径。
推荐阅读
- ruby - 使用哈希图测试订单
- c++ - 理解 char 变量计数的 C++ 问题
- javascript - 在 React 中使用常规函数未触发 onClick 操作
- sql - dml 的通用 sql 脚本
- postgresql - Postgres(错误:列“date_deadline”是日期类型,但表达式是文本类型)
- java - 在java中滚动两个骰子直到dice1比dice2大两倍
- r - 用 ggplot2::stat_ydensity 绘制横向密度
- python - 使用 nodejs 消费者降低命名管道 (fifo) 吞吐量
- apache-kafka - 无法连接到任何种子经纪人
- python - 如何在python中为linux设置复杂的环境变量?