2

이전 닫기 질문과 동일하게 보일지라도이 닫기 시나리오를 준수하십시오. 아직도 나는 대답을 얻지 못하고있다. 그래서 중복으로보고하지 마십시오.Visual C++ 런타임 라이브러리 링커 비상용 번들

10 개의 종속성이있는 프로젝트가 있습니다. 먼저 주 프로젝트의 C/C++ 코드 생성 섹션에서/MTD 옵션을 사용하여 컴파일하고 모든 종속성이 성공적으로 빌드됩니다.

다음으로 옵션을/MTD에서/MDd로 변경했으며 다시 모든 종속 프로젝트가 빌드를 성공적으로 완료합니다. 그러나 주요 프로젝트에 대한 다음과 같은 오류가보고됩니다


LIBCMTD.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in MSVCRTD.lib(MSVCR80D.dll) 

LIBCMTD.lib(lseeki64.obj) : error LNK2005: __lseeki64 already defined in MSVCRTD.lib(MSVCR80D.dll) 


sqlite3x.lib(sqlite3x_command.obj) : error LNK2005: "protected: wchar_t * __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::_Myptr(void)" ([email protected][email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@IAEPA_WXZ) already defined in msvcprtd.lib(MSVCP80D.dll) 

MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __mkdir already defined in LIBCMTD.lib(mkdir.obj) 

MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __strdup already defined in 
LIBCMTD.lib(strdup.obj) 

    Creating library Debug/Application.lib and object Debug/Application.exp 
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library 

LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library 

가 어떻게이 문제를 해결할 수 있습니까?

+0

원래 질문을 편집하여 질문을 반복하지 말고 자세한 내용을 추가하십시오. 질문을 업데이트하면 첫 페이지로 다시 이동합니다. 또는 현상금을 추가하여 더 많은 관심을 얻으십시오. – tvanfosson

+0

누구든지 폐회 투표를해도 복제물에 링크를 걸 수 있습니까? 고맙습니다. –

+1

중복 : http://stackoverflow.com/questions/925540/how-to-resolve-the-following-linker-errors-in-visualstudio – tvanfosson

답변

5

C 런타임 라이브러리를 혼합 할 수 없습니다./MT (아무거나) 컴파일 된 라이브러리 또는 개체가 있으면/MD와 연결할 수 없습니다. threadsafe MSVCRT와 연결해야합니다. 그렇다고해도 과언이 아닙니다. 믹스 C 런타임이 없습니다. 난 항상 최선을 발견했습니다, 스레딩을하지 않는 프로그램에서도/MT 만 사용합니다.

이미 만들어진 개체와 라이브러리를 제거하려면 프로젝트 정리 작업을 실행 했습니까? 여기에도 SQLite에 대한 의존성이 있습니다. 다시 작성 했습니까? 라이브러리 ++ 정적 C의 무리가 모두 함께 연결되어있는 경우

1

, 그들은 모두 있어야합니다/MTD 또는 모두 /MDd.You이/MDD

또 다른 프로젝트/MTD와 함께 프로젝트를 링크 할 수 있어야합니다 이것은 아마 귀하의 연결 오류에 대한 이유입니다. 당신이 주 프로젝트에서만 그것을 얻는 이유는 귀하의 주 프로젝트가 실제로 연결을 수행하는 유일한 프로젝트라는 것입니다. 문제가 해결되었는지 알려주십시오.

나는 MTD와/MDd에서 같은 문제가 있었음을 기억하며 나는 비슷한 오류를 경험했다.

0

내 대답 here은이 문제에 대한 내 버전을 해결하는 데 매우 유용한 일부 MSDN 기사에 연결하여 도움이 될 수 있습니다.

관련 문제