如何查看动态库文件(.dylib)的函数定义?

时间:2018-05-31 07:36:08

标签: python c shared-libraries dylib

所以我有一个名为“libxlearn_api.dylib”的动态库文件。我可以通过

从python代码中加载这个库
lib = ctypes.cdll.LoadLibrary(/path/to/lib)

我还可以看到dir(lib)在上面的库中定义了哪些函数。 但是,这只是给出了函数名称列表。

我需要查看这些函数的描述/定义(如何编写/实现它们,即实际代码。)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

  

我需要查看这些函数的描述/定义(如何编写/实现它们,即实际代码。)

一般情况下,您不能,因为动态库可能是proprietary(MacOSX上的许多GUI相关库就是这种情况,请阅读Aqua)。

如果库是free software,或者某些(合法)意味着您已获得其源代码(可能在签署一些NDA并支付了一些钱之后),您可能会研究其源代码。然后,您最好从源代码构建该库(以确保二进制库和源代码匹配),否则您需要信任二进制库的提供程序,它与您所获得的源代码完全对应。

BTW,xlearn是免费软件。也许它与您的二进制动态库相同(但您需要检查)。我建议能够从其源代码构建它(在终端中,使用命令)。请参阅其installation guide部分:从源代码安装。