您可以使用 ELF 文件(可执行文件或库)获取信息 readelf。
看起来您正在寻找导出的符号,因此请使用:
$ readelf --dyn-syms libyourthing.so
Run Code Online (Sandbox Code Playgroud)
对于 C 类型函数,您只会获得函数名称,而不是参数类型或返回值。对于 C++ 函数,您将获得错误的名称 - 将该命令的输出通过管道c++filt传输以获取函数名称和参数类型(尽管仍然没有返回值)。
(全局变量也显示在输出中,带有它们的名称和大小,而不是它们的类型。)
其他有用的工具nm,并objdump提供类似的信息。
不过我不确定这对你有帮助。您还应该尝试strace查看 python 是否正在寻找您认为的位置。就像是:
$ strace -e trace=open python your_code_that_loads_your_lib.py
Run Code Online (Sandbox Code Playgroud)
将向您显示open由 python 执行的所有调用 - 在那里查找您的库名称(上面会记录很多,过滤它)。每次调用还会显示返回代码,因此您可能会更好地了解正在发生的事情。
哦,请确保您没有尝试将 32 位库加载到 64 位 python 运行时中,反之亦然。
| 归档时间: |
|
| 查看次数: |
2528 次 |
| 最近记录: |