Modulare Programmierung



  • Hallo

    habe folgende frage. Undzwar wenn ich Modular Programmieren will und folgende 3 dateien habe (dev.hpp, dev.cpp, main.cpp).

    In dev.hpp:
    Eine Klasse deklariert

    In dev.cpp
    Die Schnittstellfunktionen implementiert von dev.hpp
    Hier habe ich folgendes includiert:
    #include "dev.hpp" //im selben ordner wie dev.cpp
    #include <iostream>
    using namespace std;

    In main.cpp:
    Hier will ich mit meiner classe in dev.hpp arbeiten.
    Hier habe ich dev.hpp und iostream includiert.

    So habe ich das alles gemacht aber mein compiler kann dies nicht compilieren wo habe ich denn einen fehler?

    Danke



  • Hallo,

    welche Fehlermeldung gibt dein Compiler aus?

    MfG
    tuküe



  • pin schrieb:

    mein compiler kann dies nicht compilieren

    Und wie teilt er dir das mit? Möglicherweise mit einer Fehlermeldung? 🙄



  • hmm, die magische Zauberkugel sagt mir, dass du den Linker nicht richtig bedient hast 😉

    wmfrs



  • Ihr habt ja alle recht.. Fragen stellen muss gelernt sein..

    Habe in der Klasse test in der dev.hpp die methode test() und die methode getvalue und die Fehlermeldung sieht so aus.

    main.cpp: undefined reference to test::test(int) ' main.cpp: undefined reference totest::getvalue'

    gut denke jetzt problematik besser geschildert.....



  • wow, meine magische Zauberkugel hatte recht 🙂

    nun ja, dass Problem ist, dass du nicht richtig linkst.

    > gcc -c dev.cpp #erst eine Objekt Datei erzeugen
    > gcc dev.o main.cpp #dann main kompilieren und alles linken
    

    *vola*



  • kingruedi schrieb:

    wow, meine magische Zauberkugel hatte recht 🙂

    nun ja, dass Problem ist, dass du nicht richtig linkst.

    > gcc -c dev.cpp #erst eine Objekt Datei erzeugen
    > gcc dev.o main.cpp #dann main kompilieren und alles linken
    

    *vola*

    so umständlich? ich würde mir wünschen, daß man einfach

    g++ main.cpp dev.cpp
    

    tippen darf.
    und am besten er wählt als namen für die ausführbare datei den namen der ersten cpp-datei. ob man sowas mit wenig aufwand programmieren könnte?



  • Vielen Dank kingruedi für die schnelle und exakte erkennung der Fehlerquelle (zauberkugel 😉



  • Du kannst auch gleich alles machen lassen, in dem du

    g++ -o <programm_name> <erste_cpp_datei> <zweite_cpp_datei> <...>
    

    eintippst.

    mfg
    v R



  • Bezieht sich progname auf einen beliebigen namen oder muss das main.cpp sein.
    Wenn nicht muss die erste cpp datei die main.cpp sein?



  • wenn du den Programnamen nicht mit der -o Option festlegt, heisst die Datei immer a.out


Anmelden zum Antworten