Linker Fehler unaufgelöste externe Verweise



  • Hallo,

    ich bekomme folgende Fehlermeldung:

    dfestival.lib(list_strlist_t.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '"class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class EST_TList<class EST_String> const &)" (??6@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@std@@AAV01@ABV?EST\_TList@VEST\_String@@@@@Z)', verwiesen in Funktion '"class std::basic\_ostream > & \_\_cdecl operator<<(class std::basic\_ostream > &,class EST\_TList > const &)" (??6@YAAAV?basic_ostream@DU?char_traits@D@std@@@std@@AAV01@ABV?char\_traits@D@std@@@std@@AAV01@ABV?EST_TList@V?$EST_TList@VEST_String@@@@@@@Z)'

    dfestival.lib(DiphoneBackoff.obj) : error LNK2001: Nichtaufgelöstes externes Symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class EST_TList<class EST_String> const &)" (??6@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@std@@AAV01@ABV?$EST_TList@VEST_String@@@@@Z)

    destbase.lib(vector_dvector_t.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '"class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class EST_TVector<double> const &)" (??6@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@std@@AAV01@ABV?EST\_TVector@N@@@Z)', verwiesen in Funktion '"class std::basic\_ostream > & \_\_cdecl operator<<(class std::basic\_ostream > &,class EST\_TVector const &)" (???6VEST_DVector@@@@YAAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@std@@AAV01@ABV?$EST_TVector@VEST_DVector@@@@@Z)'

    dfestival.exe : fatal error LNK1120: 2 unaufgelöste externe Verweise

    Ich weiß jetzt nicht, wo ich anfangen soll zu suchen. Also ich werde aus dieser Meldung nicht schlau.
    Zum Hintergrund: Ich habe ein UNIX-Programm nach Win32 portiert und wollte es nun als VC7-Projekt kompilieren. Mit Hilfe der erstellten VCMakefiles klappt das vorher auch wunderbar, aber eben nicht mehr als VC7-Projekt.
    Die Bibliotheken (4 Stück) werden wunderbar erstellt und bei der *.exe passiert dann halt dieser Fehler.
    Bitte um Hilfe!!

    Danke



  • *verkürzt die Namen der betroffenen Funktionen mal etwas*

    evil-peter schrieb:

    ostream& operator<<(ostream&,EST_TList<EST_String> const &)
    verwiesen in
    ostream& operator<<(ostream&,EST_TList<EST_TList<EST_String> > const &)

    ostream& operator<<(ostream&,EST_TList<EST_String> const &)

    ostream& operator<<(ostream&,EST_TVector<double> const &)
    verwiesen in
    ostream& operator<< <EST_DVector>(ostream&,EST_TVector<EST_DVector> const &)

    Du arbeitest offenbar mit eigenen Template-Klassen - und da gehört der Methodenrumpf mit in den Header, damit der Compiler die richtige Instanzierung der Funktion bereitstellen kann, wenn sie benötigt wird.

    (im Standard gibt es zwar das Schlüsselwort "export", aber das unterstützen afaik die wenigsten Compiler)



  • Dieser Thread wurde von Moderator/in CStoll aus dem Forum MFC (Visual C++) in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das Problem ist ja, daß ich das Programm nur portiert habe. Also es ist ein Open-Source-Project, daß ich ja nicht geschrieben habe!!
    Ich brauche das nur für ein anderes Programm, wo ich dieses einbinden will, aber eben unter VC7.
    Und das Projekt ist sehr umfangreich. Mir sagt einfach diese Funktionsangabe nichts, deshalb weiß ich nicht, wo oder wie ich suchen soll, um dann das Problem zu beheben.

    Danke


Anmelden zum Antworten