问题描述
如果我缺少 .dylib/.a/.so
文件的头文件,有没有办法找出我可以链接的函数,然后自己编写头文件?
我问的是 OSX,因为用于对象检查的工具略有不同。
解决方法
使用 otool 相当简单。
它是 MachO 二进制文件的 __text
部分,用于保存可链接的代码。
这样就可以像这样在 OSX 中以二进制形式打印出所有函数。
otool -t libpython3.8.a -v
使用 -t
表示 __text
部分,使用 -v
进行反汇编。
会输出类似的东西
__PyDict_Pop:
0000000000003300 pushq %rbp
0000000000003301 movq %rsp,%rbp
... assembly ...
... ret value...
0000000000004614 popq %rbp
0000000000004615 retq
0000000000004616 nopw %cs:(%rax,%rax)