我有共享库文件 (libmylib.so
),但没有它的头文件 (mylib.h
)。
你知道从共享库文件生成这个头文件的一些方法/工具吗?
最佳答案
这通常是不可能的,因为 .so 文件不包含有关参数列表的足够信息 - 特别是如果使用非标准类型(例如结构),因为类型信息不是 .so 文件的一部分.
即使仅使用标准类型,参数列表也不是 ELF 符号表的一部分(参见 http://refspecs.linuxbase.org/elf/elf.pdf 1-15ff。)。
但是,如果库没有被剥离(=它包含调试信息),DWARF 部分确实包含有关参数列表的信息,参见 How to extract function prototypes from an elf file?了解详情。
关于c - 为共享库文件(*.so)生成头文件(*.h),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197109/