※요약
경고 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"를 입력한다.
'Visual Studio > Visual Studio 에러' 카테고리의 다른 글
InitializeConditionVariable을 DLL KERNEL32.dll에서 찾을 수 없습니다. (0) | 2016.01.29 |
---|---|
MFC 프로젝트 - Debug Assertion Failed : wincore.cpp (4) | 2014.07.31 |
_CrtDbgReport: String too long or IO Error 해결 방법 (0) | 2014.03.03 |
Visual Studio 2010 - COFF로 변환하는 동안 오류가 발생했습니다 (0) | 2013.12.12 |
Visual Studio 2008 - fatal error LNK1000: Internal error during IncrBuildImage (0) | 2013.10.23 |