为共享库文件(*.so)生成头文件(*.h)

dza*_*zav 5 c linux gcc

我有共享库文件(libmylib.so),但没有头文件(mylib.h).

您是否知道从共享库文件生成此头文件的一些方法/工具?

urz*_*eit 6

这通常是不可能的,因为 .so 文件不包含有关参数列表的足够信息 - 特别是在使用非标准类型(例如结构)时,因为类型信息不是 .so 文件的一部分。

即使只使用标准类型,参数列表也不是 ELF 符号表的一部分(参见http://refspecs.linuxbase.org/elf/elf.pdf 1-15ff.)。

但是,如果库未剥离(= 它包含调试信息),则 DWARF 部分确实包含有关参数列表的信息,请参阅如何从 elf 文件中提取函数原型?详情。