2014년 8월 14일 목요일

[일기] Visual Studio 2012 [VS12] 에서 「게임 프로그래밍의 정석」 코드 컴파일...


게임 프로그래밍의 정석 책 내부의 예제에서 제공하는 라이브러리와 코드를 Visual Studio 2012 (이하 VS12 ) 를 이용하여, 컴파일하고 실행을 시켜보려 했으나...

아래와 같은 메시지가 나온다. 에러가 677개??

해결법은 아래에...


1>------ 빌드 시작: 프로젝트: ChapterFollowProject, 구성: Debug Win32 ------
1>  State.cpp
1>  main.cpp
1>  Image.cpp
1>  File.cpp
1>  코드를 생성하고 있습니다...
1>GameLib_d.lib(MemoryManager.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Framework.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(DebugStream.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Halt.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Thread.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Event.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Mutex.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(ThreadingFunctions.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Compressor.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(WindowCreator.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Font.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(StringRenderer.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Texture.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(ThreadingManager.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(SoundManager.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(InputManaegr.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(GraphicsManager.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(vector2.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(OStringStream.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(RefString.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Semaphore.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(PrimitiveRenderer.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Vector3.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Element.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Attribute.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(InFile.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Joystick.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Vector4.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(MathFunctions.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Matrix34.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Matrix44.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(VertexBuffer.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(IndexBuffer.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(DocumentImpl.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>GameLib_d.lib(Tag.obj) : error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: __thiscall std::locale::id::operator unsigned int(void)" (??Bid@locale@std@@QAEIXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: bool __thiscall std::codecvt_base::always_noconv(void)const " (?always_noconv@codecvt_base@std@@QBE_NXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: int __thiscall std::codecvt<char,char,int>::in(int &,char const *,char const *,char const * &,char *,char *,char * &)const " (?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: int __thiscall std::codecvt<char,char,int>::out(int &,char const *,char const *,char const * &,char *,char *,char * &)const " (?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: int __thiscall std::codecvt<char,char,int>::unshift(int &,char *,char *,char * &)const " (?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: static unsigned int __cdecl std::codecvt<char,char,int>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: virtual __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: class std::locale __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::getloc(void)const " (?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Gndec(void)" (?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Gninc(void)" (?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Init(void)" (?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Init(char * *,char * *,int *,char * *,char * *,int *)" (?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: virtual __thiscall std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "protected: __thiscall std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: __thiscall std::basic_istream<char,struct std::char_traits<char> >::basic_istream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: virtual __thiscall std::basic_istream<char,struct std::char_traits<char> >::~basic_istream<char,struct std::char_traits<char> >(void)" (??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::read(char *,__int64)" (?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(__int64,int)" (?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>msvcprtd.lib(MSVCP110D.dll) : error LNK2005: "public: class std::fpos<int> __thiscall std::basic_istream<char,struct std::char_traits<char> >::tellg(void)" (?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ)이(가) GameLib_d.lib(FileIOManager.obj)에 이미 정의되어 있습니다.
1>libcpmtd.lib(ios.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(ios.obj) : error LNK2005: "public: static void __cdecl std::ios_base::_Addstd(class std::ios_base *)" (?_Addstd@ios_base@std@@SAXPAV12@@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" (?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(wiostrea.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(locale0.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(locale0.obj) : error LNK2005: "void __cdecl std::_Facet_Register(class std::_Facet_base *)" (?_Facet_Register@std@@YAXPAV_Facet_base@1@@Z)이(가) msvcprtd.lib(locale0_implib.obj)에 이미 정의되어 있습니다.
1>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(iosptrs.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(locale.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xlock.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(xthrow.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xthrow.obj) : error LNK2005: "void __cdecl std::_Xbad_alloc(void)" (?_Xbad_alloc@std@@YAXXZ)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(xthrow.obj) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPBD@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(xthrow.obj) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range@std@@YAXPBD@Z)이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>libcpmtd.lib(wlocale.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xlocale.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xdateord.obj) : error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(File.obj에 위치) 값과 일치하지 않습니다.
1>libcpmtd.lib(xwctomb.obj) : error LNK2005: __Getcvt이(가) msvcprtd.lib(MSVCP110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __calloc_dbg이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __free_dbg이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(winapisupp.obj) : error LNK2005: ___crtGetShowWindowMode이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(winapisupp.obj) : error LNK2005: ___crtSetUnhandledExceptionFilter이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(winapisupp.obj) : error LNK2005: ___crtTerminateProcess이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(winapisupp.obj) : error LNK2005: ___crtUnhandledException이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(wsetloca.obj) : error LNK2005: __configthreadlocale이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(lconv.obj) : error LNK2005: _localeconv이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __amsg_exit이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __cexit이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __initterm_e이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(mlock.obj) : error LNK2005: __lock이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(errmode.obj) : error LNK2005: ___set_app_type이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(atox.obj) : error LNK2005: _atoi이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ)이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a이(가) MSVCRTD.lib(cinitexe.obj)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z이(가) MSVCRTD.lib(cinitexe.obj)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a이(가) MSVCRTD.lib(cinitexe.obj)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z이(가) MSVCRTD.lib(cinitexe.obj)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(sprintf.obj) : error LNK2005: _sprintf_s이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(strtol.obj) : error LNK2005: _strtol이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(_file.obj) : error LNK2005: __lock_file이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(_file.obj) : error LNK2005: __unlock_file이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(fflush.obj) : error LNK2005: _fflush이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LIBCMTD.lib(tolower.obj) : error LNK2005: _tolower이(가) MSVCRTD.lib(MSVCR110D.dll)에 이미 정의되어 있습니다.
1>LINK : warning LNK4098: 'MSVCRTD' defaultlib가 다른 라이브러리와 충돌합니다. /NODEFAULTLIB:library를 사용하십시오.
1>LINK : warning LNK4098: 'LIBCMTD' defaultlib가 다른 라이브러리와 충돌합니다. /NODEFAULTLIB:library를 사용하십시오.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "public: __thiscall std::_Mutex::~_Mutex(void)" (??1_Mutex@std@@QAE@XZ) 외부 기호(참조 위치: "public: virtual __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ) 함수)에서 확인하지 못했습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) 외부 기호(참조 위치: "public: virtual void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ) 함수)에서 확인하지 못했습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) 외부 기호(참조 위치: "public: virtual void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEXXZ) 함수)에서 확인하지 못했습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (?_Init@locale@std@@CAPAV_Locimp@12@XZ) 외부 기호(참조 위치: "public: __thiscall std::locale::locale(void)" (??0locale@std@@QAE@XZ) 함수)에서 확인하지 못했습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "public: __thiscall std::_Mutex::_Mutex(void)" (??0_Mutex@std@@QAE@XZ) 외부 기호(참조 위치: "protected: __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ) 함수)에서 확인하지 못했습니다.
1>GameLib_d.lib(FileIOManager.obj) : error LNK2019: "private: static void __cdecl std::locale::facet::_Facet_Register(class std::locale::facet *)" (?_Facet_Register@facet@locale@std@@CAXPAV123@@Z) 외부 기호(참조 위치: "public: void __thiscall std::locale::facet::_Register(void)" (?_Register@facet@locale@std@@QAEXXZ) 함수)에서 확인하지 못했습니다.
1>???????????????\Documents\Visual Studio 2012\Projects\SDL\First\Debug\ChapterFollowProject.exe : fatal error LNK1120: 6개의 확인할 수 없는 외부 참조입니다.
========== 빌드: 성공 0, 실패 1, 최신 6, 생략 0 ==========



해결하기 위해 설정을 변경하는데....



 위 사진에 나타난 부분에서 '런타임 라이브러리'가 '다중 스레드 디버그 DLL'로 되어 있다.

이를 '다중 스레드 디버그'로 바꾼다.


또한 구성 속성의 일반에서 플랫폼 도구 집합을 아래 사진과 같이 Visual Studio 2012(v110) 에서 Visual Studio 2010 (v100)으로 변경한다.


에서


물론 교재에서 지시한 대로 라이브러리 경로나 포함 경로를 추가하고 종속성 라이브러리를 추가하는 등의 작업은 그대로 진행하여야 한다.

그랬더니....

1>------ 빌드 시작: 프로젝트: ChapterFollowProject (Visual Studio 2010), 구성: Debug Win32 ------
1>  State.cpp
1>  main.cpp
1>  Image.cpp
1>  File.cpp
1>  코드를 생성하고 있습니다...
1>  ChapterFollowProject.vcxproj -> ???????????\Documents\Visual Studio 2012\Projects\SDL\First\Debug\ChapterFollowProject.exe
========== 빌드: 성공 1, 실패 0, 최신 6, 생략 0 ==========

성공했다.

댓글 없음:

댓글 쓰기