본문 바로가기
C,C++/Debugging things

dumpbin을 사용하여 .lib 파일 내의 함수 정보 얻기

by woohyeon 2023. 4. 27.
반응형

라이브러리를 추가하고 어떤 클래스를 사용하는데 특정 멤버 함수에서만 LNK2019 에러가 떴다.
이 에러는 보통 함수의 선언과 정의가 뭔가 매칭되지 않을 때 뜨는 것으로 알고 있다.

특정 멤버 함수만 뜨기 때문에 프로젝트 세팅 문제는 아닌 것 같았다.
뭔가 인자 타입이 선언과 정의가 다른건가 의심하고 있었다.
(아주 옛날 라이브러리고 beta 버전이라 써져 있었음)
 
그래서 혹시 lib 파일 내용을 볼 수 있는지 찾다가 dumpbin이라는 것을 이용해 lib 파일 내에 있는 함수 시그니처 정보를 볼수 있다는 것을 알았다.

그래서 아래 방법으로 확인해 보았는데 실제로 내가 가지고 있는 헤더에 선언된 함수의 인자랑 lib 파일 내의 인자랑 달랐고 헤더 수정하니 컴파일 잘된다. (문자열 타입이 상이했음) 


사용법

1. 다음 경로에 있는 4개의 프롬프트 중 4번 째 것을 관리자 권한으로 실행한다.
(다 되는지는 모르겠지만 나는 4번째 걸로만 해보았다)

 

2. 관리자 권한으로 실행하면 현재 위치가 System32로 뜬다.(나의 경우에) 이 폴더에 보고 싶은 lib 파일을 복사해둔다.
그리고 다음의 명령어를 입력한다. 

dumpbin /symbols /exports xxx.lib > xxx.txt

-> xxx.lib 파일의 내용을 xxx.txt 파일에 작성&생성해준다.

 

 




댓글