Linux 中是否有一个工具(如命令)可以列出 .so 库中的原型(prototype)。
我发现 nm
接近我的需要,但我得到的只是符号。
最佳答案
如果库是 C 库,它本身不包含函数的签名。这些在头文件中(库应该提供),除非 .so
库已使用 -g
启用的调试信息进行编译(这在生产环境中不常见库)。
即使在 C++ 中,.so
库(没有 -g
)也不包含相关类的声明。损坏的名称仅指类或类型名称...
简而言之,您需要库的头文件。大多数 Linux 发行版将它们与库本身分开打包。例如,在 Debian 上,您同时拥有 libjansson4
包(包含 .so
共享库,需要运行像 Jansson 库这样的应用程序)和 libjansson- dev
包(包含共享对象和头文件,可用于构建应用程序调用 Jansson 库中的函数)。 Debian 还提供 libjansson-dbg
(用于调试信息或库的变体)和 libjansson-doc
(用于文档)包。
关于linux - 列出 .so 库中原型(prototype)的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463640/