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

标签 c linux gcc

我有共享库文件 (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/

相关文章:

c - gcc 选项 : pkg-config --libs --cflags gtk+-3. 0

c - 如何使用 CDT 在 eclipse 中进行运行配置

c - 主线程和工作线程初始化

Python crontab 尝试除 ValueError

node.js - systemd日志每日汇总-linux

c++ - 无法识别 PRIxPtr

C 无法将值分配给结构体字段

C++ 动态内存分配 - char*

c - 随机字符奇怪的定义行为

linux - 编译时指定库目录