我有一个共享库文件 (libmylib.so
),但没有相应的头文件 (mylib.h
)。
您是否知道一些生成这个头文件的方法或工具?
我有一个共享库文件 (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?了解详细信息。