0
오브젝트 파일 (예 : macintosh dylib 또는 Linux .so 파일)을 가져 와서 자동으로 C .h 파일을 생성 할 수 있습니까?오브젝트 파일에서 헤더 파일 생성
오브젝트 파일 (예 : macintosh dylib 또는 Linux .so 파일)을 가져 와서 자동으로 C .h 파일을 생성 할 수 있습니까?오브젝트 파일에서 헤더 파일 생성
아니오. 오브젝트 파일에는 기본적으로 기호 이름에서 주소에 이르기까지 (nm
과 같은 명령으로 표시 할 수있는) 맵핑이 들어 있지만 유형 정보는 절대적으로 없습니다.
약간 단순화하고 있습니다 (일부 기호는 사용되지만 오브젝트 파일에는 정의되지 않았고 다른 것은 정의 됨). 그러나 대답은 여전히 아니오입니다.
예를 들어, 내가 마지막으로 컴파일 한 임의의 파일에 nm a.out
의 결과는 다음과 같습니다. 이 예제는 너무 작아 gcc builtins가 자신이 정의한 기호보다 많습니다. 그러나 형식 정보가 없습니다 ...
$ 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 그러나 함수에 대한 인수는 여전히 당신에게 수수께끼 일 것입니다. – joveha