Fehlermeldung: collect2.exe: error: ld returned 1 exit status



  • Hallo Kollegen(innen),

    Haben uns das letzte Semester sehr ausführlich mit C beschäftigt....dieses Semester kommt C++ dran...
    Habe nach intesivem Studium, wie man grundlegend Klassen, Instanzen erstellt mich mal daran gemacht, ein kleines Programm selbst zu erstellen.
    Habe dazu die .h erstellt....dann die methoden in die .cpp ....und zu guter letzt eine .cpp mit der Main.

    Dann kommt jedes mal...bei jedem getesteten Programm:

    collect2.exe: error: ld returned 1 exit status

    Wenn ich die Methoden direkt in der .h erstelle, klappt alles super...glaube er findet die .cpp nicht, in der ich meine methoden der Klasse habe....ich verzweifle gerade voll :S

    Anbei das Programm:
    ----------------------------------------------------------------
    //Die .h
    #include <string>

    class Konto
    {

    private:
    std::string name;
    int nummer;
    double stand;

    public:
    bool init(std::string, int, double);

    void display();

    };

    ---------------------------------------------------------
    //die .cpp für die methoden:

    #include "Konto.h"
    #inlude <string>

    bool Konto::init(std::string in_name, int in_nummer, double in_stand)
    {
    name = in_name;
    nummer = in_nummer;
    stand = in_stand;

    return true;
    }

    void Konto::display()
    {
    std::cout << name << std::endl;
    std::cout << nummer << std::endl;
    std::cout << stand << std::endl;
    }

    -------------------------------------------------------------------------------
    Die .cpp mit der Main:

    #include "Konto.h"
    #include <iostream>

    int main()
    {

    Konto Test;

    Test.init("Max Mustermann", 12345, 3.1234);
    Test.display();

    return 0;
    }



  • Der linker sagt, was er nicht findet. Finde die Stelle, an der deine IDE das ausgibt.
    Wenn du glaubst, dass nicht alles übersetzt wird, solltest du das ändern. Oder erwartest du, dass wird das tun?
    Deine init-Funktion hat mal drei und mal zwei Parameter. Das kann nicht stimmen. Davon abgesehen gibt es zum Initialisieren den Konstruktor. Eine public init Funktion ist höchstwahrscheinlich Mist.



  • Habe das mit mehreren Programmen getestet...da Kollegen meinten, es liegt an der Entwicklungsumgebung, habe ich mir jzt ne Neue geholt....aber die schreit genauso...mach ich im ablauf was falsch?
    Ich erstelle die .h ....dann die .cpp, welche die .h includiert...und zu guter letzt die main.cpp, welche ebenso die .h includiert...dann speichere ich alle in ein Verzeichnis(Ordner) und kompiliere die main.cpp....verstehe nicht, warum er die .cpp mit den methoden nicht findet :S



  • Student_007 schrieb:

    und kompiliere die main.cpp

    Und die andere .cpp nicht?



  • Also ich hab die Entwicklungsumgebung (Programm) offen, dann in drei separaten Tabs die einzelnen Dateien geöffnet, welche sich ja alle im gleichen Ordner befinden...und wenn ich dann im main.cpp ordner bin, und diesen kompiliere, steht die besagte Fehlermeldung....und wenn ich, wie du meinst in die .cpp gehe und dort kompiliere, schreit er ebenfalls....ich verstehs nicht,,,,habe mir auch beispielprogramme vom inet gezogen, also von unserer Vorlesung, die problemlos funktionieren müssten,,,,aber er kommt immer mit diesem Fehler....keine Ahnung, ob ich im Ablauf was falsch mache...stehe gerade komplett an :S



  • Wahrscheinlich will deine IDE (welche?), daß du ein Projekt anlegst und die Dateien zum Projekt hinzufügst ...



  • Benutze zur Zeit Code::Blocks 13.12
    Habe in meinem Ordner drei Dateien, zwei .cpp und eine .h
    Habe bis jetzt noch nie mit projekten gearbeitet...ist das ein nötiger zwischenschritt?
    Lerne aus einem Buch, da ist sowas nie gestanden...auch im inet bis jetzt nichts...

    Habe bis heute vormittag noch mit dem Dev-C-++ gearbeitet, da meine Kollegen meinten, dem fehlt eine Bibliothek, habe ich mir den Code::Blocks geholt....same here :S


Log in to reply