error LNK2005: _printf이(가) MSVCRTD.lib(MSVCR100D.dll)에 이미 정의되어 있습니다. F:\Project\GGangster\GGangster\libcmtd.lib(printf.obj)
......
.....
수많은 오류가 나왔다..
이와 같은 설정의로 에러를 경고로 나오게끔 하는 방법이 있지만
근본적인 해결방법도 아니고 수없이 많은 warning도 보기 좋지 않다..
일단 이 오류가 나오는 원인은
빨간 색 부분의 런타임 라이브러리때문에 생기는 문제이다...
프로젝트를 진행하다 보면 외부 라이브러리를 많이 사용하게 되는데. 외부 라이브러리는 MT(d)로 컴파일 되어있으나
내가 사용하는 프로젝트는 MD(d)로 되어 있으면 어김없이 LINK2005 오류가 발생하게 된다..
라이브러리에 대한 모든 소스가 다 있다면 런타임 라이브러리의 옵션을 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 |
자신의 프로젝트의 옵션에 따라서
특정 기본 라이브러리 무시.. 요기에다가 적어주면 된다!!..
출처
http://msdn.microsoft.com/ko-kr/library/6wtdswk0(v=VS.100).aspx
http://msdn.microsoft.com/ko-kr/library/abx4dbyh(v=VS.100).aspx
크롬에서는 링크가 잘되는데.. IE에서는 안되네요 -ㅅ-;;
주소 복사하시면 됨니다..
'C..C++....' 카테고리의 다른 글
람다(Lambda) 활용하기.! (0) | 2011.06.27 |
---|---|
c/c++에서 문자열 인코딩 변환! 유니코드 멀티바이트 UTF-8 쉽게 변환해보자~! (5) | 2011.06.17 |
gtest,unittest++ (0) | 2011.05.19 |
std::tr1::bind / function 사용방법 (0) | 2011.05.18 |
tr1 Random 사용하기 (0) | 2011.05.12 |