warum gibs hier nen linker error?



  • hab irgendwie nen problem mit namespaces... mein programm hat ungefähr folgende struktur

    hilfsfunktion.h

    #if... [guard]
    namespace stuff
    {
     void foo(int &a, int &b);
    }
    #endif
    

    hilfsfunktion.cpp

    namespace stuff
    {
     void foo(int &a, int &b)
     {
       a += b;
     }
    }
    

    code1.h

    #include "hilfsfunktion.h"
    ...
    hilfsfunktion::foo(x, y);
    ...
    

    code2.cpp

    #include "hilfsfunktion.h"
    ...
    hilfsfunktion::foo(x, y);
    ...
    

    so, und wenn ich den ganzen krams kompilier, schmeisst mir der linker ne undefined reference von foo raus. warum?



  • Ganz einfach: Die Funktionen hilfsfunktion::foo() (die du verwendest) und stuff::foo() (die in hilfsfunktion.h/cpp definiert wird) haben nichts miteinander zu tun.



  • ich brauch ne edit funktion... Oo

    natürlich ist im beispiel stuff::foo(x,y) gemeint.

    das problem besteht unverändert 😉



  • kdegnome schrieb:

    ich brauch ne edit funktion... Oo

    Dann melde dich doch an 😉

    natürlich ist im beispiel stuff::foo(x,y) gemeint.

    das problem besteht unverändert 😉

    Eventuell hilft es, wenn du ein ausführlicheres Beispiel bringst - von wo aus verwendest du foo()? (und was genau sagt dir dein Linker?)



  • oh man bin ich dämlich... ich hatte das ding im makefile irgendwann mal auskommentiert, weil ich es nicht mehr brauchte. nun brauch ich es wieder und wer errät, was ich vergessen habe, bekommt nen keks 😃


Anmelden zum Antworten