Dev-C++ Linkerfehler



  • Hi Leuz,

    Ich hab ein kleines Proggi geschrieben mit einer Klasse einem Menü und Funktionen und diese Dateien so aufgeteilt:

    klasse.hpp:

    #ifndef klassendefinition
    #define klassendefinition
    //IHNHALT
    #endif

    funktionen.cpp:

    #ifndef funktionen
    #define funktionen
    #include "klasse.hpp"
    //IHNHALT
    #endif

    menue.cpp
    #include "klasse.hpp"
    #include "funktionen.cpp"
    //IHNHALT

    in einem Projekt

    Bei linken gibt der Linker lauter Fehlermeldungen aus, dass die Funktionen mehrfach definiert sind:

    dateiname+pfad: multiple definition of`funktionsname(parameter)'

    wenn ich aber die 3 dateien in eine *.cpp datei gebe und compiliere funktioniert das proggi genau so, wie ich es will.

    Is der Fehler bei euch auch schon mal aufgetreten, oder wisst ihr, wie man den behebt???



  • Original erstellt von <Dev-C++ler>:
    **
    #include "funktionen.cpp"
    **

    So nicht, das führt zu den angesprochenen Mehrfachdefinitionen. Schreib für funktionen.cpp eine funktionen.hpp, die alle dort drin vorkommenden Funktionen als Prototypen enthält, und binde die stattdessen ein. Wenn du mehrere Quelldateien (*.cpp bei dir) hast, muß auch jede für sich compiliert werden. Auf der Kommandozeile müßte das etwa so aussehen:

    g++ -c menue.cpp // erstellt menue.o
    g++ -c funktionen.cpp // erstellt funktionen.o
    g++ -o main.exe menue.o funktionen.o // linken der beiden Objektfiles zur Executable

    Da DevC++ eine IDE ist mußt du das nicht von Hand machen 😉 An der Stelle kann ich dir nicht mehr großartig weiterhelfen, guck mal ob man ein Projekt erstellen kann ... dort kommen dann alle Quelldateien rein, die später zusammengelinkt werden soll.


Anmelden zum Antworten