g++ compiler aufrufen



  • Hallo zusammen:

    SuSe Linux 8.1

    Ich hab nur mal zum Test ein Hallo Welt programm geschrieben int der Form:

    include <iostream>
    using namespace std;
    
    int main()
    {
         cout<<"Hallo Welt\n";
    }
    

    und wollte es mit dem g++ in Linux mit folgendem Befehl compilieren lassen:
    g++ test.cpp

    Der hat mir ein bisschen was angezeigt und was gemacht aber keine andere Datei oder so erzeugt.

    Ist der Befehl vielleicht Falsch oder muss ich noch ein paar Bibiotheken installieren obwohl ich das ganze packet eigendlich installiert habe?



  • Was ist denn das "bisschen" was er angezeigt hat? Normalerweise müsste er (wenn die -o Option nicht angegeben ist) eine ausführbare Datei namens "a.out" erzeugen.



  • Vielleicht liegts auch am fehlenden # vor include? Natürlich davon ausgehend, dass der Code 100%ig gequotet wurde. Aber ohne Fehlemeldung kann man nur spekulieren...





  • kingruedi schrieb:

    lies das mal:
    http://www.catb.org/~esr/faqs/smart-questions.html

    haha, demnach könnte man 90% aller threads in diesem forum ignorieren ... nice one 👍



  • ich finde, wenn man eine Antwort auf eine Frage erwartet, sollte man die Frage vernünftig stellen dh. man sollte auch sämtliche interessanten Informationen mitliefern. Ansonsten ist es ja nicht möglich die Frage präzise zu beantworten.



  • Man schreibt das Programm mit einem Editor und speichert es als hallo.cpp ab.

    #include <iostream>
    using namespace std;
    int main()
    {
      cout << "hello, world" << endl; // Einführender Gruß aus K&R C
    }
    

    KWrite sorgt freundlicherweise für die richtigen Farben im Sourcecode, wenn es die Endung xyz.cpp erkennt.

    Anschließend gibt man folgende Zeile in einer Konsole ein:

    g++ -o hallo hallo.cpp

    Dabei entsteht im Home-Verzeichnis die ausführbare Datei hallo.
    Wenn man nur g++ hallo.cpp schreibt, dann entsteht die merkwürdige Datei a.out.

    Wenn man dies nun laufen lassen will, gibt man in der Konsole(!) hallo ein. Dann erscheint hello, world.

    Klickt man im Home-Verzeichnis die Datei direkt an, passiert nichts (in MS Windows würde das Programm kurz aufblitzen).

    Hat man mehrere Dateien mit Sourcecode, so geht man wie folgt vor:

    g++ -c xxx.cpp
    g++ -c yyy.cpp
    g++ -o prog xxx.o yyy.o

    Das -c stoppt den Compiler bei der Objektdatei ab.
    Damit entkoppelt man Compilieren und Linken. Das beschleunigt.

    Alles klar? 😉



  • @Erhard
    ui, für Linux musst du noch eniges lernen

    Dabei entsteht im Home-Verzeichnis die ausführbare Datei hallo.

    nö, im aktuellen Verzeichniss 🙂

    Wenn man nur g++ hallo.cpp schreibt, dann entsteht die merkwürdige Datei a.out.

    find ich recht praktisch, weil ich in meinem Verzeichniss für Demo Programme ja nicht für jedes Programm ein eigenes Binary brauche, dann nehm ich eben a.out

    Wenn man dies nun laufen lassen will, gibt man in der Konsole(!) hallo ein. Dann erscheint hello, world.

    ./hallo

    weil nicht bei allen Distributionen . automatisch in PATH ist

    Klickt man im Home-Verzeichnis die Datei direkt an, passiert nichts (in MS Windows würde das Programm kurz aufblitzen).

    da es viele verschiedene Filemanager unter Linux gibt, kann man das gar nicht so sagen. Außerdem solltest du mal den Filemanager von der Konsole starten und schauen was dann auf der Konsole steht 🙂

    Damit entkoppelt man Compilieren und Linken. Das beschleunigt.

    das beschleunigt? Wieso sollte es, im Endeffekt linkst du es ja doch.



  • Es beschleunigt nicht bei Total-Rebuilds, aber es ermöglicht inkrementelle Compilierung, was dir im Endeffekt die ständigen Rebuilds erspart und damit unter dem Strich die Compilierung beschleunigt. Aber ich denke du wußtest das.


Anmelden zum Antworten