작성
·
380
0
인터넷에 찾아보니 구성 속성" > "C/C++" > "코드 생성" > "런타임 라이브러리 를 /MT 나 /MD 로 맞춰주라고 해서 맞추기도 해봤는데 계속
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보
오류 LNK2038 '_ITERATOR_DEBUG_LEVEL'에 대해 불일치가 검색되었습니다. '0' 값이 '2'(Game.obj에 위치) 값과 일치하지 않습니다. 가메코딩 C:\Users\shhmu\Desktop\GameCoding_tmp\가메코딩\DirectXTex.lib(DirectXTexImage.obj) 1
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보
오류 LNK2038 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MD_DynamicRelease' 값이 'MTd_StaticDebug'(Game.obj에 위치) 값과 일치하지 않습니다. 가메코딩 C:\Users\shhmu\Desktop\GameCoding_tmp\가메코딩\DirectXTex.lib(DirectXTexImage.obj) 1
이런 에러가 나타나는데 어떻게 해야 할까요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
shhmun02님, 문제를 겪고 계신 부분에 대하여 설명 드리겠습니다. LNK2038 에러는 프로젝트 내의 서로 다른 객체 파일들이 불일치하는 런타임 라이브러리 설정을 사용하여 컴파일되었을 때 발생합니다. 여기서는 ‘_ITERATOR_DEBUG_LEVEL’과 ‘RuntimeLibrary’ 설정이 불일치하고 있음을 나타냅니다.
’_ITERATOR_DEBUG_LEVEL’ 오류는 디버그 모드와 릴리즈 모드에서 C++ 표준 라이브러리 컨테이너들의 디버그 기능 지원 수준이 서로 다르기 때문에 발생합니다. 이 값을 동일하게 맞춰주어야 하는데, 일반적으로 디버그 모드에서는 ‘_ITERATOR_DEBUG_LEVEL’이 2가 되고, 릴리즈 모드에서는 0이 됩니다. 프로젝트의 모든 부분이 동일한 설정으로 컴파일되었는지 확인해보세요.
‘RuntimeLibrary’ 오류는 프로젝트에 포함된 파일들이 서로 다른 런타임 라이브러리 설정(MT, MD, MTd, MDd 등)을 사용하여 컴파일되었음을 나타냅니다. 여기서 ‘MD_DynamicRelease’는 동적 런타임 라이브러리를 사용하는 릴리즈 모드를, ‘MTd_StaticDebug’는 정적 런타임 라이브러리를 사용하는 디버그 모드를 의미합니다. 프로젝트의 모든 구성 요소가 같은 런타임 라이브러리를 사용하도록 설정을 일치시켜야 합니다.
해결 방법으로는 프로젝트 속성에서 “구성 속성” > “C/C++” > “코드 생성” > “런타임 라이브러리”를 확인하시고, 프로젝트 전체가 동일한 설정(모두 /MT, /MTd, /MD 혹은 /MDd 중 하나로)을 사용하고 있는지 확인해 주세요. 라이브러리와의 불일치도 확인해야 하며, 필요하다면 라이브러리를 재컴파일하거나 적절한 버전을 사용해야 할 수도 있습니다.
부디 이 정보가 shhmun02님의 문제 해결에 도움이 되길 바랍니다.