Linkingfehler mit Templateklassen in KDevelop



  • Hallo,

    ich versuche mich jetzt gerade mit Templates und Templateklassen vertraut zu machen. Als IDE benutze ich KDevelop. Wenn ich in anderen Projekten mit normalen Klassen über die New Class Funktion automatisch die Klassendateien erzeugen lasse und diese dann per z.B.

    #include "nodet.h"
    

    in die main.cpp einbinde, klappt alles wunderbar.
    Wenn diese Klasse NodeT jedoch ein Template ist und ich sie auf die gleiche Art und Weise versuche einzubinden, dann gibt es Linking-Fehler, sobald ich versuche eine Instanz zu erzeugen:

    [...]/templatetest/src/templatetest.cpp:37: undefined reference to `NodeT<int>::NodeT(int*)'
    [...]/templatetest/src/templatetest.cpp:39: undefined reference to `NodeT<int>::~NodeT()'
    [...]/templatetest/src/templatetest.cpp:39: undefined reference to `NodeT<int>::~NodeT()'
    

    Jetzt habe ich es einmal ausprobiert statt "nodet.h" "nodet.cpp" einzubinden und dann klappt es. Normalerweise klappt es aber auch bei der Header-Datei. Woran könnte das jetzt liegen? 😕

    Danke schonmal,
    juice17



  • das liegt ganz einfach an der natur von templates ...
    und hat nix mit kdevelop zu tun


Anmelden zum Antworten