[GWork] LNK2038 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MDd_DynamicDebug' 값이 'MTd_StaticDebug' 값과 일치하지 않습니다.

이제 GWork 샘플 빌드를 해봤고 실제로 저희 프로젝트에 연동하기 위해 lib와 h 파일 위치등을 설정해 준 후 빌드를 해보니 아래와 같이 링크에러가 발생했습니다.

LNK2038 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MDd_DynamicDebug' 값이 'MTd_StaticDebug'(atltypes.obj에 위치) 값과 일치하지 않습니다. GworkSDL2.lib(SDL2.obj) 1

LNK2005 "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z)이(가) libcpmtd.lib(xlock.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1
LNK2005 "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ)이(가) libcpmtd.lib(xlock.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1
LNK2005 "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z)이(가) libcpmtd.lib(stdthrow.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1

LNK2005 "void __cdecl std::_Xbad_alloc(void)" (?_Xbad_alloc@std@@YAXXZ)이(가) libcpmtd.lib(xthrow.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1
LNK2005 "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPBD@Z)이(가) libcpmtd.lib(xthrow.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1

LNK2005 "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range@std@@YAXPBD@Z)이(가) libcpmtd.lib(xthrow.obj)에 이미 정의되어 있습니다. msvcprtd.lib(MSVCP140D.dll) 1

LNK2038 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MDd_DynamicDebug' 값이 'MTd_StaticDebug'(atltypes.obj에 위치) 값과 일치하지 않습니다. Gwork.lib(BaseRender.obj) 1

LNK2019 __except_handler4_common 외부 기호(참조 위치: __except_handler4 함수)에서 확인하지 못했습니다. MSVCRTD.lib(_chandler4gs_.obj) 1


처음에는 libcpmtd.lib 같은 놈들을 특정 기본 라이브러리 무시에 추가해서 해볼려고 했더니만 오히려 링크에러가 늘어날 뿐이었습니다. 해결방법은 GWork lib와 저희 프로젝트간에 서로 런타임 라이브러리가 달라서 발생한 이슈였습니다.


저희 게임 프로젝트가 다중 스레드 디버그(MTd)로 되어 있는데 GWork lib는 다중 스레드 디버그 DLL(MDd)로 되어 있더군요. MTd로 변경 후 lib 빌드 후 게임 프로젝트 빌드하니 링크에러가 없어졌습니다.

https://stackoverflow.com/questions/14714877/mismatch-detected-for-runtimelibrary
https://msdn.microsoft.com/ko-kr/library/jj889284.aspx
https://msdn.microsoft.com/ko-kr/library/2kzt1wy3.aspx

이 블로그의 인기 게시물

CMake Windows에 설치하기

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

Unity3D 안드로이드 Keystore 생성하기