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?basic_string@DU?basic\_string@DU?char_trait
    s@D@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?list@V?basic_string@DU?basic\_string@DU?char_traits@D@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@V?basic_string@DU?basic\_string@DU?char_traits@D@std@@V?allocator@D@2@@std@@@2@@3@@Z)TreeGenerator.obj:errorLNK2001:NichtaufgeloestesexternesSymbol"public:staticclassstd::list<classstd::basic_string<char,structstd::char_traits<char>,classstd::allocator<char>>,classstd::allocator<classstd::basicstring<char,structstd::char_traits<char>,classstd::allocator<char>>>>__cdeclStringlistHelper::stringToList(classstd::basic_string<char,structstd::char_traits<char>,classstd::allocator<char>>)"(?stringToList@StringlistHelper@@SA?AV?allocator@D@2@@std@@@2@@3@@Z) TreeGenerator.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class std::list<class std::basic\_string<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> > > > \_\_cdecl StringlistHelper::stringToList(class std::basic\_string<char,struct std::char\_traits<char>,class std::allocator<char> >)" (?stringToList@StringlistHelper@@SA?AV?list@V?basicstring@DU?basic_string@DU?ch
    ar_traits@D@std@@V?allocator@D@2@@std@@V?allocator@D@2@@std@@V?allocator@V?basic_string@DU?basic\_string@DU?char_traits@D@std@@V?allocator@D@2@@std@@@2@@std@@V?allocator@D@2@@std@@@2@@std@@V?basic_string@DU?chartraits@D@std@@V?char_traits@D@std@@V?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.


Anmelden zum Antworten