C 从对象文件生成头文件

C 从对象文件生成头文件,c,code-generation,C,Code Generation,是否可以获取一个对象文件(如macintosh dylib或linux.so文件)并自动生成一个C.h文件?否。该对象文件基本上包含一个从符号名到地址的映射(可以使用命令(如nm)但绝对没有类型信息 我简化了一点(一些符号被使用,但没有在对象文件中定义,其他的在那里定义),但答案仍然是否定的 例如,下面是我上次编译的任意随机文件的nma.out结果:) 这个示例非常小,gcc内置的符号数量超过了我自己定义的符号数量。但是没有类型信息 $ nm a.out 0000200c D _NXArgc

是否可以获取一个对象文件(如macintosh dylib或linux.so文件)并自动生成一个C.h文件?

否。该对象文件基本上包含一个从符号名到地址的映射(可以使用命令(如
nm
)但绝对没有类型信息

我简化了一点(一些符号被使用,但没有在对象文件中定义,其他的在那里定义),但答案仍然是否定的

例如,下面是我上次编译的任意随机文件的
nma.out
结果:) 这个示例非常小,gcc内置的符号数量超过了我自己定义的符号数量。但是没有类型信息

$ nm a.out 
0000200c D _NXArgc
00002008 D _NXArgv
00002000 D ___progname
00001fbc t __dyld_func_lookup
00001000 A __mh_execute_header
00002004 D _environ
         U _exit
00001fca T _main
         U _rand
00002030 S _x
00002010 d dyld__mach_header
00001fa8 t dyld_stub_binding_helper
00001f68 T start

如果它是用调试符号编译的,则不是这样。libbfd可能能够读取它,或者您可以为您正在使用的任何调试格式获取一个库。@Tim但是函数的参数对您来说仍然是一个谜。