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

时间:2013-04-24 16:16:24

标签: c linux gcc

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

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

1 个答案:

答案 0 :(得分:4)

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

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

但是,如果未剥离库(=它包含调试信息),则DWARF-part确实包含有关参数列表的信息,有关详细信息,请参阅How to extract function prototypes from an elf file?