【发布时间】:2013-03-07 15:48:22
【问题描述】:
我正在使用 ctypes 为共享 Linux 库编写 Python 包装器。有没有办法以编程方式提取库的 soname(例如,可能通过某个库来访问其 ELF 数据)? (我知道我可以从 objdump 命令的输出中获取这些信息,但我很好奇是否可以在不执行系统命令的情况下完成。)
【问题讨论】:
标签: python version shared-libraries elf objdump
我正在使用 ctypes 为共享 Linux 库编写 Python 包装器。有没有办法以编程方式提取库的 soname(例如,可能通过某个库来访问其 ELF 数据)? (我知道我可以从 objdump 命令的输出中获取这些信息,但我很好奇是否可以在不执行系统命令的情况下完成。)
【问题讨论】:
标签: python version shared-libraries elf objdump
当然,您可以使用subprocess 执行objdump,然后解析其输出以获取soname,但这是您要避免的。但是,一个 shell 示例是 here。
还有pyelftools可以看。据我从文档中看到,它应该能够检索所有必要的数据。
【讨论】:
想通了;解决方案(使用pyelftools)发布here。
【讨论】: