C库导出什么函数?

What functions does a C library export?

本文关键字:函数 什么      更新时间:2023-10-16

如果我在Windows, Linux或Mac中使用C或c++库,是否有任何方法可以知道它导出的函数和数据结构及其签名而无需该库的文档?

可以明确列出链接器使用的符号名称。对于c++,这是一个完整的(扭曲的)签名。对于C(也适用于c++中的extern "C"),它通常只是简单的名称(有时是参数的总大小,但没有类型,每个参数的大小,甚至参数的数量)。

在Unix系统上,您想要的工具是nm(或objdump,它还可以显示没有链接的符号)。在Windows上,DUMPBIN /EXPORTS .

如果试图检查静态库,您可能必须首先提取它们(Unix上的ar, Windows上的lib.exe),然后在单个成员(目标文件)上调用nmdumpbin

有关获取c++签名的详细信息,请参阅相关问题:查找与c++ dll's方法相匹配的参数

调试信息也可以提供访问C链接签名,因为它们不存储在符号表中。