Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.07.2008, 21:45

Fehlermeldungen bei MT in express 2008

hi,

wollte mein projekt auf mt (multithreaded) umstellen, damit ich das eben ganz normal an freunde etc. weiterschicken kann, ohne ihnen da viele dlls oder sonstiges mitzuschicken.

das problem ist jedoch, dass beim kompilieren dann folgende fehler kommen

Zitat

1>------ Erstellen gestartet: Projekt: Tempel des Magrothan, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>game.cpp
1>main.cpp
1>Code wird generiert...
1>Verknüpfen...
1>game.obj : error LNK2005: "public: bool __thiscall std::ios_base::eof(void)const " (?eof@ios_base@std@@QBE_NXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)" (?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: char & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator[](unsigned int)" (??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::length(void)const " (?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::find(char const *,unsigned int)const " (?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > & (__cdecl*)(class std::basic_ostream<char,struct std::char_traits<char> > &))" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : 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 msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::basic_ifstream<char,struct std::char_traits<char> >(void)" (??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::open(char const *,int,int)" (?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::close(void)" (?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBEHXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (?width@ios_base@std@@QAEHH@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+<char,struct std::char_traits<char>,class std::allocator<char> >(char const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::getline<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_istream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>game.obj : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z) ist bereits in msvcprtd.lib(MSVCP90D.dll) definiert.
1>LINK : warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
1>game.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__CrtDbgReportW" in Funktion ""public: char & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator[](unsigned int)" (??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z)".
1>libcpmtd.lib(cout.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__CrtDbgReportW".
1>libcpmtd.lib(stdthrow.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__CrtDbgReportW".
1>libcpmtd.lib(xdebug.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__malloc_dbg" in Funktion ""void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z)".
1>libcpmtd.lib(xdebug.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__free_dbg" in Funktion ""void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z)".
1>libcpmtd.lib(_tolower.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__calloc_dbg" in Funktion "__Getctype".
1>C:\Konsolenprogrammierung\Tempel des Magrothan\Debug\Tempel des Magrothan.exe : fatal error LNK1120: 4 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Konsolenprogrammierung\Tempel des Magrothan\Tempel des Magrothan\Debug\BuildLog.htm" gespeichert.
1>Tempel des Magrothan - 41 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


sagt mir leider relativ wenig, weil ich mich damit nicht auskenne, aber sieht iwie nach irgendeinem problem mit dem verlinken von bibliotheken etc. aus?

weiß wer, worang das liegt?

2

20.07.2008, 22:11

WAS soll denn bitte Multithreading mit DLLs WENIGER zu tun haben? Das ist was vollkommen anderes -.-
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

3

20.07.2008, 23:43

bin mir nicht mehr sicher, mein letztes projekt ist ca ein jahr sowas her und da weiß ich nur noch, dass es eben 3 varianten gab, damit andere leute die projekte testen können.

entweder dlls mitschicken, oder ne manifestdatei glaub ich erstellen oder in das projekt direkt die nötigen infos (dlls?) mitreinlinken. dadurch wird afaik zwar die exe größer, aber man benötigt eben nicht die ganzen zusatzdateien. und soweit ich mich noch erinnern kann hab ich das damals eben gelöst, indem ich auf MT umgestellt habe (ging damals problemlos).

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

4

21.07.2008, 00:01

Zitat von »"Deviloper"«

WAS soll denn bitte Multithreading mit DLLs WENIGER zu tun haben? Das ist was vollkommen anderes -.-


Er meint nicht etwa, dass sein Projekt jetzt Threads benutzt bzw. Threadsafe ist, sondern er will nun die Statischen CRT Libs linken(um nicht immer die Dlls mitzuliefern). Unter Visual Studio gibt es bei der option nämlich als Auswählmöglichkeiten (u.a.) "Multithreaded" und "Multithreaded Dll". Das eine ist eben die Lib, das andere die Dll. Das ganze gibts dann noch als Debug versionen.

Bei dem Problem kann ich leider auch nicht weiterhelfen, aber ich hoffe mein Post hat etwas aufgeklärt.

Socke

5

21.07.2008, 00:56

Ehm ich weiß was er meint. Was hattest du denn vorher für ne Laufzeitbibliothek ausgewählt? "Multithreaded DLL" oder was?
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

6

21.07.2008, 15:53

multithreaded-debug dll

hab jetzt auf multithreaded-debug umgestellt und es geht noch.

multithread allein geht jedoch nicht.

Werbeanzeige