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.cppDer 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...
-
lies das mal:
http://www.catb.org/~esr/faqs/smart-questions.html
-
kingruedi schrieb:
lies das mal:
http://www.catb.org/~esr/faqs/smart-questions.htmlhaha, 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.oDas -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 lernenDabei 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.