2014-11-14 9 views
1

pdcurses를 다운로드하고 컴파일했습니다. 해당 설명서에서 지시 한대로 내가 사용 : 내가 릴리스 모드에있을 수 있도록 나는 또한 DEBUG 태그없이 pdcurses를 구축pdcurses 정적 디버그 빌드와 VS2013을 연결할 수 없습니다.

nmake -f vcwin32.mak DEBUG=Y pdcurses.lib 

.

이제는 정적으로 pdcurses를 연결하려는 프로젝트가 있습니다. MT와 ​​MTd를 런타임 라이브러리로 사용하고 디버그를 할 때 DEBUG 빌드의 .lib 파일을 링크하고 릴리스 할 때 다른 .lib 파일을 링크합니다.

내가 릴리스 모드의 모든 것을 내 프로젝트를 빌드 잘 작동하지만 여기 디버그에 빌드 할 때 오류입니다 :

1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" ([email protected]@[email protected]) already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" ([email protected]@[email protected]) already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __call_reportfault already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __get_invalid_parameter_handler already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __initp_misc_invarg already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: __set_invalid_parameter_handler already defined in LIBCMTD.lib(invarg.obj) 
1>LIBCMT.lib(invarg.obj) : error LNK2005: ___pInvalidArgHandler already defined in LIBCMTD.lib(invarg.obj) 
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 

모든 아이디어 문제가있을 수 있습니다 무슨 일이?

답변

0

디버그 및 릴리스 정적 런타임 모두에 연결하고 있습니다. 그렇게하지 마십시오. 어떤 라이브러리가 문제를 일으키는 지 알지 못하면 this guide을 찾아서이를 탐지하는 단계를 참조하십시오.

+0

예, 문제가있는 것 같습니다.하지만 그렇게하지는 않습니다. 최소한의 목적은 아닙니다. 디버그 런타임에서 pdcurses를 빌드 한 다음 MTd와 링크합니다. 뭐가 문제 야? – TheCrafter