출처 : http://icartsh.tistory.com/
출처 :
http://msdn.microsoft.com/ko-kr/library/6wtdswk0(v=VS.100).aspx
http://msdn.microsoft.com/ko-kr/library/abx4dbyh(v=VS.100).aspx
error LNK2005: _printf이(가) MSVCRTD.lib(MSVCR100D.dll)에 이미 정의되어 있습니다.
이 오류는
프로젝트 속성에 C/C++ -> 코드 생성-> 런타임 라이브러리 : 다중 스레드 디버그 DLL(/MDd) 때문에 발생한다고 한다.
외부 라이브러리가 MT(d)로 컴파일 되어있지만 내가 사용하는 프로젝트가 MD(d)로 되어 있으면 발생는 것으로
옵션을 MT(d)나 MD(d)로 모두 통일 하면 되지만
라이브러리의 소스가 존재하지 않을때에는
아래와 같이 해야한다.
프로젝트 속성->링크->입력->즉정 기본 라이브러리 무시 : LIBCMTD.LIB
출처 :
http://msdn.microsoft.com/ko-kr/library/6wtdswk0(v=VS.100).aspx
http://msdn.microsoft.com/ko-kr/library/abx4dbyh(v=VS.100).aspx
error LNK2005: _printf이(가) MSVCRTD.lib(MSVCR100D.dll)에 이미 정의되어 있습니다.
이 오류는
프로젝트 속성에 C/C++ -> 코드 생성-> 런타임 라이브러리 : 다중 스레드 디버그 DLL(/MDd) 때문에 발생한다고 한다.
외부 라이브러리가 MT(d)로 컴파일 되어있지만 내가 사용하는 프로젝트가 MD(d)로 되어 있으면 발생는 것으로
옵션을 MT(d)나 MD(d)로 모두 통일 하면 되지만
라이브러리의 소스가 존재하지 않을때에는
아래와 같이 해야한다.
사용할 런타임 라이브러리 | 무시해야 하는 라이브러리 |
단일 스레드(libc.lib) | libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib |
다중 스레드(libcmt.lib) | libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib |
DLL을 사용하는 다중 스레드(msvcrt.lib) | libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib |
디버그 단일 스레드(libcd.lib) | libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib |
디버그 다중 스레드(libcmtd.lib) | libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib |
DLL을 사용하는 디버그 다중 스레드(msvcrtd.lib) | libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib |
프로젝트 속성->링크->입력->즉정 기본 라이브러리 무시 : LIBCMTD.LIB