Was heißt dieser Fehler beim Kompilieren??



  • Hallo,

    ich habe beim kompilieren folgenden Fehler:

    /cygdrive/c/DOKUME1/rodo/LOKALE1/Temp/ccbSiz9W.o(.text+0x310):main.cpp: undefined reference to Re lation<Author, unsigned, std::less<Author> >::subscribe(IndexBase<Author, unsigned, std::less<Author \> >*)' /cygdrive/c/DOKUME~1/rodo/LOKALE~1/Temp/ccbSiz9W.o(.text+0x325):main.cpp: undefined reference toRe
    lation<Author, unsigned, std::less<Author> >::subscribe(IndexBase<Author, unsigned, std::less<Author
    > >*)'
    collect2: ld returned 1 exit status

    obwohl die Funktion subscribe definiert ist!

    Woran kann das liegen?
    Ich programmier mit dem gnu-Compiler unter Cygwin.

    Danke und mfg
    rodo



  • Hallo,

    der Fehler tritt nicht nur bei subscribe auf, sondern bei jeder anderen Funktion von Relation<...> auch!

    mfg
    rodo



  • Ist Relation eine Template-Klasse und die Methodendefinitionen stehen in einer eigenen Uebersetzungseinheit?

    Wenn ja -> das geht nur mit export, und das kann fast kein Compiler.
    Also -> alles in den Header



  • Hallo Shade Of Mine,

    danke für die Antwort!

    Relation ist Template-Klasse und die Implementierung ist in einer eigenen Date.
    Normalerweise includier ich am Ende der .h die .cpp.

    Das hab ich vergessen => hätt ich wahrscheinlich nie mehr gefunden...

    mfg
    rodo


Anmelden zum Antworten