Adrian: Warum tu ich mich mit C/C++ so schwer?

Hallo.

Ich verzweifle. Ich versuche immer wieder mal, C++ zu lernen. Dazu ziehe ich mir Programmcode und verusuche es, zu kompilieren. Als Beispiel nehme ich diesen Quellcode:

root@ubuntu:~# g++ /home/adrian/programmieren/C++/komm.cpp
In Datei, eingefügt von /usr/include/c++/3.3/backward/iostream.h:31,
                    von /home/adrian/programmieren/C++/komm.cpp:3:
/usr/include/c++/3.3/backward/backward_warning.h:32:2: Warnung: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

Und so in der Art läuft es immer, egal welchen Quellcode ich nehme, egal welchen Kompiler, egal welches OS - es kommen immer unterschiedliche Fehlermeldungen, und es kommt keine ausführbare Datei dabei raus.

Warum tue ich mich damit so schwer? Warum gibt es nicht einfach einen einzigen genormten Compiler, dann würde der Quelltext immer funktionieren.

Danke
Adrian

  1. Hi,

    Warum tue ich mich damit so schwer? Warum gibt es nicht einfach einen einzigen genormten Compiler, dann würde der Quelltext immer funktionieren.

    war doch nur eine "deprecated-warning", Du solltest mal ein wenig Zeit investieren Dich mit dem Mist anzufreunden.

    Gruss,
    Ludger

  2. Hallo,

    wie siehts denn hiermit aus ?

    gruss

    --
    no strict;
    no warnings;
    "May I introduce you to OSX. It even runs on cheap intel hardware."
    "I doubt that. It could run on cheap intel hardware, but Apple will restrict to expensive Apple hardware, which consists of cheap Intel hardware."
    1. Hi, danke für die schnelle Antwort

      wie siehts denn hiermit aus ?

      root@ubuntu:~# g++ /home/adrian/programmieren/C++/HW_WP.cpp
      /home/adrian/programmieren/C++/HW_WP.cpp:7:2: Warnung: Kein Newline am Dateiende

      Nach Einfügen einer neuen Zeile am Dateiende:

      root@ubuntu:~# g++ /home/adrian/programmieren/C++/HW_WP.cpp
      root@ubuntu:~#

      Müsste also funktioniert haben, aber wo ist die ausführbare Datei?

      Danke nochmals
      Adrian

      1. Hi Adrian

        root@ubuntu:~# g++ /home/adrian/programmieren/C++/HW_WP.cpp

        Auauauaua. Wofür brauchst Du beim Kompilieren Rootrechte?

        Müsste also funktioniert haben, aber wo ist die ausführbare Datei?

        Da Du keinen Namen angegeben hast, heißt sie a.out
        Wie Du einen Namen angibst, steht in der Manpage, die Du dringend lesen solltest.

        Gruß,
        Maddin

        1. Hi Maddin

          root@ubuntu:~# g++ /home/adrian/programmieren/C++/HW_WP.cpp

          Auauauaua. Wofür brauchst Du beim Kompilieren Rootrechte?

          Oooch, ich bin halt grad root. Aber ich kann das auch als normaler User machen, am Ergebnis ändert das nix.

          Müsste also funktioniert haben, aber wo ist die ausführbare Datei?

          Da Du keinen Namen angegeben hast, heißt sie a.out
          Wie Du einen Namen angibst, steht in der Manpage, die Du dringend lesen solltest.

          Jaja, aber *wo* ist die ausführbare Datei?

          Danke
          Adrian

          1. Hi,

            Da Du keinen Namen angegeben hast, heißt sie a.out
            Wie Du einen Namen angibst, steht in der Manpage, die Du dringend lesen solltest.

            Jaja, aber *wo* ist die ausführbare Datei?

            Den Namen hast Du gerade bekommen. Wenn Du nicht weißt, wie Du eine Datei mit bekanntem Namen suchen kannst hast Du noch ein gutes Stück Arbeit vor Dir.

            so short

            Christoph Zurnieden

            1. Hallo Christoph,

              Da Du keinen Namen angegeben hast, heißt sie a.out
              Wie Du einen Namen angibst, steht in der Manpage, die Du dringend lesen solltest.

              Jaja, aber *wo* ist die ausführbare Datei?

              Den Namen hast Du gerade bekommen. Wenn Du nicht weißt, wie Du eine Datei mit bekanntem Namen suchen kannst hast Du noch ein gutes Stück Arbeit vor Dir.

              Und vor allem ist es keine gute Idee, schon dann C++ zu lernen. Ich will ihn nicht demotivieren, oder angreifen. Die Tatsache, dass man die Grundfunktionen eines OS nicht beherrscht bedeutet allerdings meistens eben auch, dass man die Grundkonzepte der darauf laufenden Programmiersprachen nur unzureichend aufnehmen kann. Das Ergebnis sind schlechte und zumeist unsichere Programme. Nein, das heißt ausdrücklich nicht, dass Adrian sich nicht mit der C[++]-Programmierung befassen soll, sondern dass er sich noch ein bisschen mit dem System beschäftigen muss. Das kann auch bedeuten, dass er einige GNU-Tools wie ls oder eben auch find rudimentär nachbaut[1]. Wer von uns hat nicht mit dem zehntausendsten unnützen Texteditor angefangen ;-)

              [1] Und mindestens den Quellcode mal anschaut.

              Grüße aus Barsinghausen,
              Fabian

              --
              "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
            2. Hallo Christoph

              Den Namen hast Du gerade bekommen. Wenn Du nicht weißt, wie Du eine Datei mit bekanntem Namen suchen kannst hast Du noch ein gutes Stück Arbeit vor Dir.

              Jetzt werd ich langsam verrückt. Vorhin gab es wirklich keine Datei "a.out".
              Ich habe dann mit Synaptic etwas deinstallieren wollen, und plötzlich deinstallliert mit Synaptic so ziemlich alles, was deinstalliert werden kann (so'n Mist).
              Mein erster Schritt: Neuinstallation von Kubuntu. Ich kann soviele Pakete wie deinstalliert worden sind, nicht einfahc manuell ankreuzen und wieder installieren. (nicht schlagen - bitte!)
              Jetzt waren die Daten natürlich weg. Also, alles was ich brauche wieder per Synaptic draufspielen. Auch der g++-Compiler ist darunter.

              Jetzt habe ich das Kompilieren wieder probiert - und jetzt ist da eine a.out! Komisch, komisch, vorhin war die noch nicht da ...

              Zum Glück funktioniert es jetzt. Danke.
              Adrian

              1. Hallo,

                Jetzt waren die Daten natürlich weg. Also, alles was ich brauche wieder per Synaptic draufspielen. Auch der g++-Compiler ist darunter.

                Ich glaube aber trotzdem nicht, dass es irgendwas damit zu tun hat. Ich glaube es war in der Hektik wirklich nur ein Eingabefehler.
                P.S Ich bevorzuge ohnehin ein $ gcc -o dateiname dateiname.c (bzw g++)

                Markus.

                --
                Wenn ich ein toller Programmierer währe, könnte ich vielleicht sogar Packete nach einem gewissen Standart kompelieren...
          2. Hallo Adrian,

            Jaja, aber *wo* ist die ausführbare Datei?

            Im aktuellen Verzeichnis. Beispiel:

            christian@midnight ~ $ mkdir cpptest
            christian@midnight ~ $ cd cpptest
            christian@midnight ~/cpptest $ cat > hello.cpp

            #include <iostream>  
              
            int main (int argc, char **argv) {  
              std::cout << "Hello World!\n";  
              return 0;  
            }
            

            christian@midnight ~/cpptest $ g++ hello.cpp
            christian@midnight ~/cpptest $ ./a.out
            Hello World!
            christian@midnight ~/cpptest $

            Viele Grüße,
            Christian

      2. Hallo,

        man man, man ls, g++ --help, man google

        gruss

        --
        no strict;
        no warnings;
        "May I introduce you to OSX. It even runs on cheap intel hardware."
        "I doubt that. It could run on cheap intel hardware, but Apple will restrict to expensive Apple hardware, which consists of cheap Intel hardware."
  3. Hallo Adrian,

    Und so in der Art läuft es immer, egal welchen Quellcode ich nehme, egal welchen Kompiler, egal welches OS - es kommen immer unterschiedliche Fehlermeldungen, und es kommt keine ausführbare Datei dabei raus.

    Es sind keine Fehlermeldungen wenn du sie mal Anschaust, sondern (in diesem Fall) Warnungen oder Hinweise. Das hat keinen Einfluss auf die Erstellung der Executable. Dass du keine findest ist ein weiteres Problem, das du am besten mit einem Blick in die Compiler-Dokumentation in Angriff nimmst.

    Grüße aus Barsinghausen,
    Fabian

    --
    "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>