Sine: C++ Programmierung [linux]

Hallo,

ich wollte schon immer mit der C++ programmierung befassen.
Unter Linux habe ich gehört gibt es diverse Tools wie Compilierer etc.
Denn gcc habe ich schon Installiert aber was brauch ich noch?
Reicht nicht einfach kwrite oder sowas?
Nehme ich mal an ich habe ein kleines helloworld.c geschirieben, wie mach ich das dann ausführbar?
Kann mir vieleicht jemand ein nettes Deutsches Handbuch nennen "C++ und Linix" für einsteiger?
Wär sehr dankbar!
Wünsche euch ein Schönes WE!

Sine ^^

  1. Ich habe mal dieses gemacht:

    #include <iostream.h>
    void main()
    {
       cout<<"Es kommt ein Mann zum Baecker und sagt: Ich moechte 99 Broetchen."<<endl;
       cout<<"Da fragt der Baecker: Duerfen es auch 100 sein?"<<endl;
       cout<<"Der Mann antwortet: Nein, wer koennte denn so viele essen?"<<endl;
    };

    die datei unter dem namen: datei.c gespeichert und dann:

    gcc hello.c

    eingegeben, habe die Meldungen:

    datei.c: In function ‘main’:
    datei.c:4: error: ‘cout’ undeclared (first use in this function)
    datei.c:4: error: (Each undeclared identifier is reported only once
    datei.c:4: error: for each function it appears in.)
    datei.c:4: error: ‘endl’ undeclared (first use in this function)
    datei.c:3: warning: return type of ‘main’ is not ‘int’

    Was heißt das?

    Danke!

    1. Yerf!

      gcc hello.c

      Hm, der gcc war doch der C-Compiler, oder? Existiert ein g++ oder so ähnlich (gpp müsste auch falsch sein, da dies der Präprozessor ist...)?

      Gruß,

      Harlequin

    2. datei.c: In function ‘main’:
      datei.c:4: error: ‘cout’ undeclared (first use in this function)
      datei.c:4: error: (Each undeclared identifier is reported only once
      datei.c:4: error: for each function it appears in.)
      datei.c:4: error: ‘endl’ undeclared (first use in this function)
      datei.c:3: warning: return type of ‘main’ is not ‘int’

      cout und endl befinden sich in einem sog. namespace, das ist im ein rahmen, den man benutzt um z.b. funktionen oder klassen abzugrenzen. der namespace von cout und endl heißt std. Wenn du die Zeile

      using namespace std;

      vor die main-funktion reinschreibst, müsste sich alles kompilieren lassen. Kannst ja mal nach namespaces googlen ;)
      Man könnte alternativ auch anstatt cout std::cout schreiben, das sagt dem compiler dass cout sich im namespace std befindet und damit findet er es auch.

    3. Hallo,

      #include <iostream.h>
      void main()
      {
         cout<<"Es kommt ein Mann zum Baecker und sagt: Ich moechte 99 Broetchen."<<endl;
         cout<<"Da fragt der Baecker: Duerfen es auch 100 sein?"<<endl;
         cout<<"Der Mann antwortet: Nein, wer koennte denn so viele essen?"<<endl;
      };

      So ist das auf jeden Fall schonmal veraltetes C++. Solltest du dieses Beispiel aus einem Buch haben, dann bring es zurück und kauf dir ein anderes. Korrekt muss es heißen:

        
      #include <iostream> //iostream.h ist veraltet  
      int main() //der return-Typ von main() ist int nicht void  
      {  
         std::cout << "Es kommt ein Mann zum Baecker und sagt: Ich moechte 99 Broetchen." << std::endl; //cout und endl liegen im namespace std  
         std::cout << "Da fragt der Baecker: Duerfen es auch 100 sein?" << std::endl;  
         std::cout << "Der Mann antwortet: Nein, wer koennte denn so viele essen?" << std::endl;  
      } //hinter die funktionsdefinition kommt kein semikolon  
      
      

      Gruss,
      OhneName

    4. Hallo,

      #include <iostream.h>

      unter C++ heißt es #include <iostream>

      void main()

      Wo wird eigentlich dauernd dieses void main gelehrt? Richtigerweise müsste main etwas ans Betriebssystem zurückliefern:

      int main(void)..... und  "return 0" am Schluss von main.

      {
         cout<<"Es kommt ein Mann zum Baecker und sagt: Ich moechte 99 Broetchen."<<endl;
         cout<<"Da fragt der Baecker: Duerfen es auch 100 sein?"<<endl;
         cout<<"Der Mann antwortet: Nein, wer koennte denn so viele essen?"<<endl;
      };

      die datei unter dem namen: datei.c gespeichert und dann:

      Warum unter .c und nicht .cpp? Du willst doch C++ verwenden?

      gcc hello.c

      gcc ist der C-Compiler. Du suchst g++.
      Insgesamt heißt das nun:

        
      #include <iostream>  
        
      using namespace::std;  
        
      int main(void)   {  
        
         cout << "100 Brötchen und weiß Gott was sonst noch alles..." <<endl;  
        
         return 0;  
      }  
      
      

      $ g++ testprogramm.cpp -o testprogramm

      $ ./testprogramm

      Markus