MatStorm Geschrieben 17. Juli 2012 Teilen Geschrieben 17. Juli 2012 Hallo alle miteinander Ich habe ein kleines Problem. Und zwar wollte ich die Laufzeitbibliothek statisch einbinden, sodass ich msvcp100.dll und msvcr100.dll nicht immer mitliefern muss, sodass die Exe direkt ohne mitzuliefernde Dateien ausführbar ist. Doch wenn ich auf Einstellungen->C/C++->Codegenerierung die Laufzeitbibliothek auf /MT oder /MTd stelle, statt /MD oder /MDd, so spuckt der Linker eine Ladung Linkererrors aus, die alle mit einer Datei zu tun haben 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) ist bereits in libcpmtd.lib(xlock.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) ist bereits in libcpmtd.lib(xlock.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) ist bereits in libcpmtd.lib(stdthrow.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPBD@Z) ist bereits in libcpmtd.lib(xthrow.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range@std@@YAXPBD@Z) ist bereits in libcpmtd.lib(xthrow.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) ist bereits in supsidian.obj definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) ist bereits in supsidian.obj definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) ist bereits in supsidian.obj definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::clear(int,bool)" (?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __thiscall std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __thiscall std::basic_ostream<char,struct std::char_traits<char> >::~basic_ostream<char,struct std::char_traits<char> >(void)" (??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: __thiscall std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::setp(char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::gbump(int)" (?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::pbump(int)" (?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) ist bereits in libcpmtd.lib(cout.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _exit ist bereits in LIBCMTD.lib(crt0dat.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: ___iob_func ist bereits in LIBCMTD.lib(_file.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _abort ist bereits in LIBCMTD.lib(abort.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _free ist bereits in LIBCMTD.lib(dbgfree.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _wcslen ist bereits in LIBCMTD.lib(wcslen.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _memmove ist bereits in LIBCMTD.lib(memmove.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) ist bereits in LIBCMTD.lib(stdexcpt.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) ist bereits in LIBCMTD.lib(stdexcpt.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) ist bereits in LIBCMTD.lib(stdexcpt.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _malloc ist bereits in LIBCMTD.lib(dbgmalloc.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __errno ist bereits in LIBCMTD.lib(dosmap.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __wcstol_l ist bereits in LIBCMTD.lib(wcstol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __wcstoul_l ist bereits in LIBCMTD.lib(wcstol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _wcstol ist bereits in LIBCMTD.lib(wcstol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _wcstoul ist bereits in LIBCMTD.lib(wcstol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iswalpha ist bereits in LIBCMTD.lib(_wctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iswdigit ist bereits in LIBCMTD.lib(_wctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iswspace ist bereits in LIBCMTD.lib(_wctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __invalid_parameter ist bereits in LIBCMTD.lib(invarg.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __CrtDbgReportW ist bereits in LIBCMTD.lib(dbgrptw.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalnum ist bereits in LIBCMTD.lib(_ctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isalpha ist bereits in LIBCMTD.lib(_ctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isdigit ist bereits in LIBCMTD.lib(_ctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _isspace ist bereits in LIBCMTD.lib(_ctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __open_osfhandle ist bereits in LIBCMTD.lib(osfinfo.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iswalnum ist bereits in LIBCMTD.lib(_wctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fflush ist bereits in LIBCMTD.lib(fflush.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _mbstowcs ist bereits in LIBCMTD.lib(mbstowcs.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _wcstombs ist bereits in LIBCMTD.lib(wcstombs.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _setlocale ist bereits in LIBCMTD.lib(setlocal.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __vswprintf ist bereits in LIBCMTD.lib(vswprint.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __vswprintf_p ist bereits in LIBCMTD.lib(vswprnc.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fputwc ist bereits in LIBCMTD.lib(fputwc.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strpbrk ist bereits in LIBCMTD.lib(strpbrk.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: bool __thiscall type_info::operator==(class type_info const &)const " (??8type_info@@QBE_NABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __create_locale ist bereits in LIBCMTD.lib(setlocal.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __free_locale ist bereits in LIBCMTD.lib(setlocal.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __close ist bereits in LIBCMTD.lib(close.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __read ist bereits in LIBCMTD.lib(read.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __write ist bereits in LIBCMTD.lib(write.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __commit ist bereits in LIBCMTD.lib(commit.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __lseeki64 ist bereits in LIBCMTD.lib(lseeki64.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __get_osfhandle ist bereits in LIBCMTD.lib(osfinfo.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __fileno ist bereits in LIBCMTD.lib(fileno.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fclose ist bereits in LIBCMTD.lib(fclose.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fwrite ist bereits in LIBCMTD.lib(fwrite.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __fseeki64 ist bereits in LIBCMTD.lib(fseeki64.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __ftelli64 ist bereits in LIBCMTD.lib(ftelli64.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __CrtSetDbgFlag ist bereits in LIBCMTD.lib(dbgheap.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtol ist bereits in LIBCMTD.lib(strtol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strtoul ist bereits in LIBCMTD.lib(strtol.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: bool __thiscall type_info::operator!=(class type_info const &)const " (??9type_info@@QBE_NABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _strncmp ist bereits in LIBCMTD.lib(strncmp.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _iswprint ist bereits in LIBCMTD.lib(_wctype.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _tolower ist bereits in LIBCMTD.lib(tolower.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _sprintf ist bereits in LIBCMTD.lib(sprintf.obj) definiert. 1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. 1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in LIBCMTD.lib(typinfo.obj) definiert. 1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _ldexp ist bereits in LIBCMTD.lib(_ldexp_.obj) definiert. 1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. Ich hoffe mir kann jemand Helfen, und gegebenenfalls erklären woran das Problem liegt. Ich will ja nicht blöd bleiben ;D mfg MatStorm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
metux Geschrieben 18. Juli 2012 Teilen Geschrieben 18. Juli 2012 hmm, sieht so aus, als ob er sowohl statische als auch dynamische crtl linken will. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MatStorm Geschrieben 18. Juli 2012 Autor Teilen Geschrieben 18. Juli 2012 (bearbeitet) Kann das irgendwie damit zusammenhängen, dass ich die Oberfläche mit wxWidgets programmiere und die Libs und Headers ins Projekt eingebunden habe? ****EDIT**** Ich habe jetzt Ein neues Win32-Projekt mit vorgeneriertem Code gemacht. Die wxWidgets-Ordner hinzugefügt und es ging noch alles, als ich aber den WinAPI-Code durch wxWidgets-Code geändert habe, kam dann der Fehler. Also habe ich bei der Konfiguration von wxWidgets was falsch gemacht? Oder ist wxWidgets nicht mit der statischen Runtime Libary kompatibel? mfg MatStorm Bearbeitet 18. Juli 2012 von MatStorm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Juli 2012 Teilen Geschrieben 18. Juli 2012 Wenn du dein Programm gegen die statische Laufzeitumgebung linkst, musst du das auch für die verwendeten Bibliotheken tun. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.