2012-07-16 2 views
3

감지 내가 VS2010에서 컴파일하는 VS2008 프로젝트를 얻으려고하지만 오류가 계속 :오류 : 불일치 '_ITERATOR_DEBUG_LEVEL'

foo.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in barr.obj 

난 단지 포함되어있는 libsquish library.와 함께이 오류를 받고 있어요을 프로젝트에서 디버그 모드에서 컴파일되지 않을 것이고 이유를 이해할 수 없습니다.

PS : 나는 빌드 및 릴리스는 같은 실행 파일이나 DLL에 디버그 빌드를 함께 혼합하여 발생할 수 있습니다 여기

답변

2

오류 요청하기 전에 구글에 대한 몇 가지 관련 스레드를 통해 있었어요.

/MD 대신/MDd를 사용하여 정적 라이브러리를 릴리스하는 반면 응용 프로그램은 릴리스에서/MD입니다. 정적 lib 프로젝트에서 올바른/MD를 설정하면 문제가 해결되었습니다.

이 나무와 런타임 라이브러리가 모든 종속 프로젝트 및 응용 프로그램에 동일하게 설정 옵션에서 프로젝트 속성

선택 구성 속성/C C++/코드 생성에서 이루어집니다.

_ITERATOR_DEBUG_LEVEL 및 _SECURE_SCL을 (를) 검색하여 제거하거나 모든 프로젝트 및 소스에서 적절하게 설정하고 모든 것을 다시 빌드하십시오.

_ITERATOR_DEBUG_LEVEL = 0 // disabled (for release builds) 
_ITERATOR_DEBUG_LEVEL = 1 // enabled (if _SECURE_SCL is defined) 
_ITERATOR_DEBUG_LEVEL = 2 // enabled (for debug builds) 

요컨대 출시 및 디버그 dll이 혼합되어 있습니다. 릴리스 DLL을 디버그 또는 그 반대로 연결하지 마십시오 !!!

+0

질문을 한 이래 2 년이 지났으므로 솔루션을 실제로 시도 할 수 없지만 정답으로 표시 할 것입니다. 어쨌든 노력을위한 thx. –