2009-05-29 12 views
6

ここは私のシナリオです。私は30のサブプロジェクトを含むプロジェクトを持っています。私はCLR(共通言語ランタイム)を使用しているので、/ mdd(マルチスレッド・デバッグDLL)を使用してランタイムを変更しました。Visual Studioで次のリンカーエラーを解決するにはどうすればよいですか?

個別にすべてのプロジェクトが正常に構築されます。

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


LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj) 
LIBCMTD.lib(fclose.obj) : error LNK2005: _fclose already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(printf.obj) : error LNK2005: _printf already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(mbstowcs.obj) : error LNK2005: _mbstowcs already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(wcstombs.obj) : error LNK2005: _wcstombs already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(tzset.obj) : error LNK2005: __tzset already defined in MSVCRTD.lib(MSVCR80D.dll) 
LIBCMTD.lib(stricmp.obj) : error LNK2005: __stricmp already defined in MSVCRTD.lib(MSVCR80D.dll) 

がどのようにこれらのすべてを解決するために:私はメイン プロジェクトをコンパイルしようとすると、しかし、私は、次のリンカエラーを取得していますか?

答えて

8

あなたのプロジェクトのいくつかは静的ランタイムライブラリを使用しているようです。 (あなたのプロジェクトの1つにダイナミックを選択しました) この組み合わせはサポートされていません。

を思い出す:Linker errors between multiple projects in Visual C++

22

LIBCMTDは、静的なマルチスレッドCランタイムライブラリのデバッグバージョンです。 MSVCR80Dは、DLLベースのマルチスレッドCランタイムライブラリのデバッグバージョンです。あなたのサブプロジェクトの中には、あるものを求めているものもあれば、もう一つを求めるものもあります。それはMicrosoftの混乱ですが、それに対処する必要があります。例えば、マルチスレッドデバッグDLLを1つ選んで、プロジェクトのデバッグバージョンとすべてのサブプロジェクトに排他的に使用します。 Microsoftのライセンス(言われている)では、リリースされたソフトウェアに非デバッグバージョンを使用する必要があります。

詳細は以下を参照してください:CLICK.

Screenshot

+2

P.S.すべてをCランタイム(CRT)の単一バージョンに変換するときは、プロジェクトを個別に「クリーン」と「再構築」します。 –

関連する問題