Windows 라이브러리의 내용을 보는 방법 (* .lib)


181

바이너리 파일-Windows 정적 라이브러리 (* .lib)가 있습니다.
해당 라이브러리에서 함수의 이름과 인터페이스를 찾는 간단한 방법이 있습니까?

Linux 시스템 emfar과 유사 하고 elfdump유틸리티가 있습니까?


1
참고 : .NET 관련 명령 프롬프트는 Visual Studio 버전과 함께 제공되지만 Express 버전과 함께 제공되지 않습니다. 에서 : social.msdn.microsoft.com/Forums/en-US/...
isgoed

답변:


199

정적 라이브러리에 대해 이야기하고 있다고 가정하면 라이브러리 DUMPBIN /SYMBOLS의 함수 및 데이터 객체를 보여줍니다. 가져 오기 라이브러리 ( .libDLL에서 내 보낸 기호를 참조 하는 데 사용)에 대해 이야기 하고 싶다면을 원합니다 DUMPBIN /EXPORTS.

"C"바이너리 인터페이스와 연결된 함수의 경우 여전히 값, 매개 변수 또는 호출 규칙을 리턴하지 않습니다. 이 정보는 전혀 인코딩되지 않습니다 .lib. 예를 들어 헤더 파일의 프로토 타입을 통해 올바르게 호출하려면 미리 알고 있어야합니다.

C ++ 이진 인터페이스와 연결된 함수의 경우 호출 규칙 및 인수는 내 보낸 함수 이름 ( "이름 맹 글링"이라고도 함)으로 인코딩됩니다. DUMPBIN /SYMBOLS"혼합 된"기능 이름과 디코딩 된 매개 변수 세트가 모두 표시됩니다.


6
/ SYMBOLS와 / EXPORTS는 현재 작동하지 않습니다. .lib 파일의 모든 기능을 보려면 더 많은 파이프와 함께 / ALL을 사용해야합니다.
user5280911 2018-06-21

100

시각적 명령 콘솔을 엽니 다 (Visual Studio 명령 프롬프트)

dumpbin /ARCHIVEMEMBERS openssl.x86.lib

또는

lib /LIST openssl.x86.lib

또는 그냥 7-zip으로 열으십시오 :) AR 아카이브


19
7-zip을 사용한 멋진 트릭에는 두 개의 .txt 파일이있는 것 같습니다.
Damian

21

ar t libfile.a유닉스 와 같은 도구를 원했습니다 .
해당하는 창은 lib.exe /list libfile.lib입니다.


4
예 lib는 (만) obj 파일을 보여줍니다. obj 파일의 함수와 데이터는 표시하지 않습니다.
user34660

14

"dumpbin -exports"는 dll에서 작동하지만 가끔 lib에서는 작동하지 않을 수도 있습니다. lib의 경우 "dumpbin -linkermember"또는 "dumpbin -linkermember : 1"을 사용할 수 있습니다.



13

DUMPBIN / EXPORTS 대부분의 정보를 얻고 MSDN을 누르면 나머지 정보를 얻을 수 있습니다.

Visual Studio 패키지 중 하나를 가져옵니다. C ++


3

1) VS 2017 (또는 컴퓨터에있는 버전)에 대한 개발자 명령 프롬프트를 엽니 다 (시작 메뉴-> 모든 프로그램-> Visual Studio 2017 (또는 컴퓨터에있는 버전) 아래에 있어야 함) -> Visual Studio 도구-> VS 2017의 개발자 명령 프롬프트.

2) 다음 명령을 입력하십시오.

dumpbin /EXPORTS my_lib_name.lib


2

다른 답변에서 볼 수 있듯이 Visual Studio 버전에서 제공되는 개발자 명령 프롬프트를 열어 dumpbin.exe실행 경로 에 있어야 합니다. 그렇지 않으면 필요한 환경 변수를 직접 설정할 수 있습니다.

dumpbin /EXPORTS yourlibrary.lib일반적으로 작은 기호 목록 만 표시합니다. 대부분의 경우 라이브러리가 내보내는 기능을 표시하지 않습니다.

dumpbin /SYMBOLS /EXPORTS yourlibrary.lib그 심볼뿐만 아니라 엄청나게 많은 다른 symbo도 보여줄 것입니다. 따라서 파이프를 사용하여 findstr(MS-Windows 도구를 원한다면) 또는 로 필터링해야합니다 grep.

Static이러한 도구 중 하나를 사용 하여 키워드를 검색 하는 것이 좋은 힌트 인 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.