warning LNK4099 pdb 디버그 정보가 없는 것처럼 개체를 링크합니다.



※요약
경고 warning LNK4099: '~.pdb' PDB를 '~.lib(~.obj)' 
또는 '~.pdb'에서 찾을 수 없습니다.
디버그 정보가 없는 것처럼 개체를 링크합니다.

디버그 모드에서 컴파일할때, 디버그 정보를 포함하지 않은 정적 라이브러리를 함께 링크하려고 하면
상기와 같은 경고가 뜰 때가 있다.

이 경고가 뜨는 이유는 올바른 PDB정보(vc90.pdb, vc100.pdb 등 버전에 따라 다름)를 찾지 못 하거나 
해당 *.pdb파일에 접근하지 못할 때, 또는 *.pdb파일은 있는데 그 안에 디버그 정보가 없을때 뜨는 경고다.

경고이기도 하고, 디버깅하지 않는다면 무시해도 기능상의 문제는 없지만 찝찝하다면 수정하는게 정신건상에 좋다.

참고로 *.pdb파일은 Program Debug Database의 약자로써, 디버깅 정보를 구성하는 이진 데이터 형태의 파일이다.

※해결 방법

아래 방법은 디버깅 정보를 *.pdb파일에 포함하지 않고 *.lib파일에 포함하므로 *.lib파일의 크기가 커진다.

사용자에게 배포하는 *.dll 파일도 아니고 *.lib파일이므로 크기가 커져도 별로 상관없다.

그리고 Release모드는 수정하지 않아도 된다.(아마도..ㅋ)


1. 수정하고자 하는 해당 라이브러리의 프로젝트 속성 창을 띄운다.( 단축키는 해당 프로젝트 선택후 Alt+F7 )



2. "구성 속성" -> "C/C++" -> "일반" -> "디버그 정보 형식" : "프로그램 데이터베이스(/Zi)"로 수정한다.



3. "구성 속성" -> "C/C++" -> "코드 생성" -> "최소 다시 빌드 가능" : "아니요(/Gm-)"로 수정한다.



3. "구성 속성" -> "C/C++" -> "명령줄" -> "추가 옵션"에 "/Ylsymbol"를 입력한다.


작성자

Posted by 오뇽

태그

관련 글

댓글 영역