Linker Fehler
-
Hallo,
ich habe ein kleines Projekt in [/cpp] geschrieben, wobei ich auch statische Methoden nutze. Das kompilieren führte zu keinerlei Probleme, jedoch zeigte der Compiler dann 3 Fehler beim Linken an

Hier ist die genaue Fehleranzeige:"TreeGenerator.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl StringlistHelper::listToString(class std::list<class std::basic_stri
ng<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >)" (?listToString@StringlistHelper@@SA?AV?char_trait
s@D@std@@V?list@V?char_traits@D@std@@V?allocator@V?char_traits@D@std@@V?list@V?ch
ar_traits@D@std@@V?allocator@V?char_traits@D@std@@V?basic_string@DU?allocator@D@2@@3@@Z)
Debug/bvlprg.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe."Hat jemand eine Ahnung was ich falsch gemacht habe?
MfG
der Stephan
-
Sieht so aus als seien statische Variablen undefiniert.
So geht's:
// Foo.hpp //... class Foo { static std::string strBuffer_; //... }; // Foo.cpp //... std::string Foo::strBuffer_(""); //...Grüsse
*this
-
Danke!
Hat funktioniert, nur leider hab ich jetzt noch folgende Warnungen:"C:\Nebenbei\Übung OOp\TreeGenerator_C++aktuell\StringlistHelper.cpp(28) : warning C4786: 'std::reverse_bidirectional_iterator<std::list<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::c
har_traits<char>,std::allocator<char> > > >::iterator,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > &,std::basic_string<char,std::char_traits<char>,std::allo
cator<char> > *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert"Wobei es sich immer um die Warnung Nr: C4786 handelt
-
Ist halt leider so bei STL/(ATL) unter MCVC...
#pragma warning(disable : 4786)vor den STL/(ATL) - includes
und versuch mal
#pragma warning(default : 4786)gleich danach.