Hilfe mit C++ unter Linux



  • Hallo ich habe ein Problem mit meinem C++ unter Linux.
    Ich möchte beginnen C++ zu erlernen, leider gibts bis jetzt nur Probleme mit dem g++(gcc) und überlege langsam das im Windows zu machen. Aber vielleicht kann mir hier jemand Helfen, das es doch unter Linux funktioniert???
    Ich habe leider mit C++ nicht sehr viel Erfahrung und daher weiß ich auch nicht genau ob ich fehler im Quelltext gemacht habe. Nur bei diesen kleinen Programmen kann ich mir das kaum vorstellen und wurden ja auch einfach aus dem Buch abgeschrieben.

    Mein Beispielprogramm für den Anfang sieht wie folgt aus:

    Dateiname: name.cpp
    ------------------------------------------------
    #include <iostream>
    using namespace std;

    void main(void)
    {
    cout << "Willkommen";
    cout << endl;
    }
    ------------------------------------------------

    nach dem Kompilieren zeigt er an:
    --------------------------------------------------
    #g++ name.cpp
    name.cpp:5: error: 'main' must return 'int
    --------------------------------------------------
    Weiß jemand was das zu bedeuten hat?

    Und bei einem zweiten Programmchen mit dem ich es auch testen wollte kommt folgendes

    Dateiname: if.cpp
    ------------------------------------------------
    #include <iostream>
    using namespace std;

    bool accept ()
    {
    cout << "Möchten Sie wirklich Beenden (j oder n)/n"; //Frage stellen cout << ist der Standard Ausgabewert

    char antwort = 0;

    cin >> antwort; // cin >> ist der Standard Eingabewert

    if (antwort == 'j') return true;
    return false;
    }
    ------------------------------------------------
    nach dem Kompilieren zeigt er an:
    --------------------------------------------------
    #g++ name.cpp
    /usr/lib/gcc-lib/i486-suse/3.3/../../../crt1.o(.text+0x18): In funktion '_start':
    :undefined reference to 'main'
    collect2: ld returned 1 exit status
    --------------------------------------------------



  • fettyteddy schrieb:

    nach dem Kompilieren zeigt er an:
    --------------------------------------------------
    #g++ name.cpp
    name.cpp:5: error: 'main' must return 'int
    --------------------------------------------------
    Weiß jemand was das zu bedeuten hat?

    Ja, das bedeutet, dass die main-Methode ein int zurückliefern muss, was sie bei dir nicht tut. Mach dein "void main" einfach zu einem "int main".

    Bei dem 2. Beispielprogramm hast du garkeine main-Methode. Die muss aber jedes C++-Programm haben, da sie im Prinzip der Einstiegspunkt ins Programm ist.



  • Hallo!

    fettyteddy schrieb:

    #g++ name.cpp
    name.cpp:5: error: 'main' must return 'int

    Das heißt, daß main einen int zurückgeben muß. Also int main() ...
    statt void main ...

    Das zweite Beispiel ist so weit korrekt, er beschwert sich nur darüber, daß er keine ausführbare Datei draus machen kann, weil ihm die main fehlt.

    MfG Jester



  • void main() bietet der garnet an?

    Was fürn geiler Compiler! 🙂



  • Was ein scheiss Buch 🙂



  • Warum soll ein Compiler etwas anbieten, was nicht dem ANSI Standard entspricht?
    Nur weil VC so nen Wurstcode nimmt, heißt das nicht, daß der GCC schlecht ist 😉



  • Wennste aus deinem "void main" ein "int main" machst, dann solltest du
    als letzte Anweisung aber noch ein "return 0;" dazuschreiben.



  • nein, muss man nicht. Bei ISO C++ ist das egal, damit kommen eben ältere Compiler nicht klar, dann merkt man aber, dass es Zeit ist für ein Compiler upgrade



  • interpreter schrieb:

    Wennste aus deinem "void main" ein "int main" machst, dann SOLLTEST du
    als letzte Anweisung aber noch ein "return 0;" dazuschreiben.

    kingruedi schrieb:

    nein, muss man nicht

    Du merkst was? 😉



  • sollte man auch nicht 😉 ist imho zuviel des guten


Anmelden zum Antworten