コード生成プロパティに Mutithreaded Debug Dll オプションを使用すると、正常にビルドおよび実行される openCv アプリケーションがあります。ただし、任意のコンピューターでアプリケーションを実行したいのですが、ビルドがマルチスレッド デバッグ モードで失敗し、LNK 2005 エラーが発生します。いくつかの例を次に示します。
1>msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) は libcpmtd.lib(xlock) で既に定義されています.obj)
1>msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) は libcpmtd.lib で既に定義されています( xlock.obj)
1>msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) は libcpmtd で既に定義されています。 lib(stdthrow.obj)
1>msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) は opencv2.obj で既に定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) LIBCMTD.lib(stdexcpt.obj) で定義済み
1>msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) は opencv2.obj で既に定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: __invalid_parameter はすでに LIBCMTD.lib(invarg.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: __CrtDbgReportW はすでに LIBCMTD.lib(dbgrptw.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) は既に定義されていますLIBCMTD.lib(stdexcpt.obj)
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) はすでに LIBCMTD.lib で定義されています( stdexcpt.obj)
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: _fclose はすでに LIBCMTD.lib(fclose.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: _fprintf はすでに LIBCMTD.lib(fprintf.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: _fopen はすでに LIBCMTD.lib(fopen.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: _memmove はすでに LIBCMTD.lib(memmove.obj) で定義されています
1>MSVCRTD.lib(MSVCR100D.dll): エラー LNK2005: _free はすでに LIBCMTD.lib(dbgfree.obj) で定義されています
任意の提案をいただければ幸いです。私は本当にここで立ち往生しています。小さなプログラムでは問題ありません
ありがとう
PS cvBlobslib の関数と LIBSVM のコードも使用していますが、問題にはなりません。