PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschied g++ gcc ?



CheGuevara
12-04-2004, 16:48
Hallo Leute, ich habe erst seit einer Woche mit C++ angefangen und habe mir schon einige Programme (aus dem Buch) "ab"geschrieben. Jedoch interessiert mich die Frage:
Was ist der Unterschied zwischen gcc und g++?
Wenn ich die Sourcen mit g++ kompiliere funzt es.... ausser ein paar Warnungen betreffend der Header.:

user@debian:~/C++$ c++ HELLO.cpp -o HELLO.o
In Datei, eingefügt von /usr/include/c++/3.3/backward/istream.h:31,
von HELLO.cpp:1:
/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.
user@debian:~/C++$ ./HELLO.o
Hello World!

Aber was ist gcc?

Detrius
12-04-2004, 18:23
Der GCC ist die GNU Compiler Collection. Darin sind Compiler für mehrere Programmiersprachen enthalten, die durch verschiedene Namen aufgerufen werden. Für C-Programme ist z.B. der gcc zuständig und für C++ der g++.

Schau Dich einfach mal ein bischen auf der Homepage (http://gcc.gnu.org) des Projekts um und wirf einen Blick in die Dokumentation, die schon auf Deinem Rechner dazu vorhanden sein wird. Da solltest Du viele nützliche Informationen finden.

peschmae
12-04-2004, 20:04
die Zeile


user@debian:~/C++$ c++ HELLO.cpp -o HELLO.o


ist zwar korrekt aber verwirrend. Mit deinem Aufruf g/c++ datei.cpp -o binary wird die HELLO.cpp kompiliert und gelinkt. Ich würde die Binary aber nicht .o nennen.

Die Dateiendung .o wird normalerweise bei Kompilierten aber ungelinkten Dateien verwendet.
z.B. wenn du mehrere .cpp-Dateien hast, dann kompilierst du die (bzw. make lässt nur die geänderten kompilieren) mit


g++ -c datei.cpp

Das gibt dann die Datei "datei.o" - und all die o-Dateien werden dann zusammen zu einem Executable gelinkt - etwa "programm" aber nicht "programm.o" (was auch ginge aber eher verwirrend ist)

MfG Peschmä

CheGuevara
12-04-2004, 20:36
Danke für die Tipps!
Noch mal ne Frage. Ich hab bis jetzt den Code in einem normalen Editor geschrieben und dan kompiliert. Nun möchte ich gerne eine IDE verwenden. Ich hab kdevelop installiert und würde es auch verwenden, jedoch.... kann ich nur Projekte mit allem drum und dran erzeugen. Ich will jedoch nur ein kleines .cpp Programm aus dem Buch abschreiben, wie krieg ich das hin, ohne gleich ein ganzes Projekt zu eröffnen?
Sorry, für die dämlichen Fragen!

peschmae
12-04-2004, 21:59
Solange du das ganze noch nicht "wirklich" beherrschst verwendest du imo besser einen Editor.
Mit Kate kommt man auch mit vielen Dateien gut zurecht (das Teil hat so eine Sidebar, die eine lange Liste geöffneter Dateien aufnehmen kann).

Eine IDE ist Bloat für einfache, kleine Projekte. Für grössere kann es sich lohnen, weil du z.B. in Klassenbäumen rumbrowsen kannst, die IDE Refactoring gut unterstützt, etc

Ich würde beim ersten "grossen" Projekt eine IDE nehmen, aber für alles andere (d.h. < 3000 Codezeilen oder so) fährst du mit einem Editor besser.
Bei der IDE ist immer die Gefahr da dass du vor lauter netten Knöpfen vergisst, was eigentlich passiert. (*)

Draum würde ich auch zuerst mal auf GUI-Designer verzichten (mir fällts leicht, weil der Qt Designer auf meinem Bildschirm gar nicht Platz bietet was grösseres als einen Hilfe|Info-Dialog zu layouten ;)

MfG Peschmä

(*) meine ersten C++-Erfahrungen hab ich mit MSVC++ und MFC gemacht. Unmöglich. Alle Bücher einfach "klicken sie hier und da und füllen sie die Methode mit Code" - für mich bis heute ein Trauma. Da war bei einem Programm wo ich noch nix gemacht hatte schon massenhaft bedrohlicher Code mit Kommentaren die ich nicht verstand, etc
So richtig kapiert habe ich OOP und alles andere erst (ich glaubs kapiert zu haben :D ) als ich mit einem einfachen Text-Editor erst viel später mit einer IDE Java programmierte.

CheGuevara
13-04-2004, 05:23
Danke, werds mir zu Herzen nehmen.
Da ich gerade in einer Informatiker Ausbildung bin (TS Informatik), werden wir jetzt im 4 Semester Visual Basic und die nächsten 2 Semester noch Java lernen. Ist es daher Sinnvoll jetzt "privat" noch C++ in Angriff zu nehmen? Ich hab mir das Buch C++ in 21 Tagen gekauft, was jedoch nicht heisst dass ich jetzt erwarte C++ in 21 Tagen zu lernen. Ausserdem habe ich noch das Buch C/C++ aus dem Galileo Verlag, was die ersten 750 Seiten C durch nimmt und dann noch die restlichen C++ (Klassen und Objekte). Von diesem Buch bin ich abgekommen, da ich nicht C sondern C++ lernen will und ich sehe diese Sprachen als zwar verwandt aber dennoch eigenständig an.
Die einzige C++ Lektüre für Linux die ich habe ist "C++ Entwicklung mit Linux" was zwar sehr interessant ist, jedoch einen Affen Zahn hinlegt und man muss schon sehr gut verstehen können was dieses Buch zu Erklähren versucht.

Zur Zeit treiben mich die Zeiger in den Waahnsinn, diese sind extrem kompliziert. Für was braucht man direkten Zugriff auf den Speicher der definierten Variable? Fragen über Fragen.....

Also, nichts für ungut und Danke nochmal.

Gruss nach Bern
CheGuevara