2014-07-23 7 views
0

Eclipse에서 .a 파일 내용 (유형, 메서드 등)이 무엇이 있는지 알고 싶습니까? .a 라이브러리 및 메서드에 대한 설명서가 있지만 프로그램에서 이러한 메서드를 사용하려고하면 Eclipse에는 해당 메서드가 없다는 메시지가 표시됩니다.이 라이브러리에서 작동하려면 .a에 포함 된 메서드를 알고 싶습니다..a (라이브러리) 코드를 보는 방법

+0

objdump로 시작 –

+1

설명서에서 .h 파일을 재구성 할 수 있습니다. – Dan

답변

1

예 아니요. 정보의 일부는 .a 바이너리 (내 보낸 함수, 전역 및 클래스 이름)에 있으며 파일이 작성된 프로그래밍 언어와 최적화 된 정도에 따라 달라집니다 (예 : 이론적으로 어떤 매개 변수를 취하는 지 C++ 메소드의 이름).

어셈블러를 잘 사용하면 .a를 분해하고 코드가 실제로 작동하는 방식과 그로 인해 필요한 매개 변수를 추론 할 수 있습니다.

하지만 실제로 모든 작업을 수행하지 않고 있습니까? 아니요. 라이브러리와 함께 제공되는 .h 헤더 파일을 사용하여 메소드의 매개 변수, 구조체의 크기 및 필드 구성 등을 확인하십시오.

1

nm 또는 그것의 창 아날로그 dumpbin는 도서관에서 기능 이름을 읽습니다 (세부 사항을 여기에서보십시오 : Microsoft equivalent of the nm command).

라이브러리가 C 언어 인 경우 이름을 초과하지 않습니다. 그것이 C++ 또는 Java 인 경우 매개 변수의 형식 (반환 형식 아님)은 이름에 "맹 글링"됩니다. Unix에서는 프로그램 C++ filt를 사용하여 프로그램을 디모듈레이션 할 수 있습니다. 또한 C/C++ 및 Java의 GCC 및 MSFT 함수 이름을 모두 해제하는 온라인 서비스가 있습니다. Is there an online name demangler for C++?