PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ und linux ---> unterschied zu win



tuxipuxi
30-08-2002, 15:42
hi leute,


ich bin ja am c++ lernen,nur da ich ein windowsuser und linuxeinsteiger bin,und gerne von windoofs weg moechte stelle ich mir die frage,wie gross der unterschied zwischen windows und linux programmierung ist.

ich weiss ja, das die sprache gleich ist..aber wie siehts mit oberflaechen,compilern etc. aus?


waere dankbar fuer antworten..


ciao lane

axeljaeger
30-08-2002, 17:10
Also wenn du nur die Standart Library benutzen willst (cout, cin), dann ist das keine große Umstellung, das ist nämlich identisch. Ist ja ein Standart ;-)

Aber das wirst du nicht wollen, interessant iwrd's ja erst mit der grafischen Oberfläche. MFC kannst du unter Linux vergessen, ist auch gut so.

Stattdessen hast du zwei andere Möglichkeiten:

GTK von der Free Software Foundation. Das ist ein C basiertes Tookit und wird im Gnome-Projekt verwendet. Es ist 100% frei, es soll auch Windows-Versionen geben.

Die andere Möglichkeit heißt Qt und kommt von der norwegischen Firma Trolltech (http://www.trolltech.com). Qt ist die Basis für das KDE Projekt. Qt ist in C++ geschrieben, etwas umfangreicher als GTK, also hat auch Klassen für Dateihandling, Netzwerk usw. Trolltech wirbt immer damit, das man seine Applikationen, wenn man sie mit Qt entwickelt hat, sowohl unter Windows, Linux, als auch MacOSX ohne Änderungen am Source kompilieren kann. Allerdings gibt es nur für Lniux eine kostenlose Version, und auch nur dann, wenn du deine Programme unter die GPL stellst. Für kommerzielle Programme wird das allerdings teuer.

Was ist nun besser?

Daran scheiden sich die Geister. Einfacher finde ich Qt, da gibt es eine Besonderheit, die sogenannten Signals & Slots. Das ist ein Callback Mechanismus, mit dessen Hilfe man CallbackFunktionen typensicher erstellen kann. Das ist sehr einfach und robust, entspricht aber nicht 100% dem Standart. Unter GTK mußt du deine Callbackfunktionen von Hand verbinden. Segfaults nicht ausgeschlossen. Ich würd dir empfehlen, lies dir mal das QT-Tutorial durch.

Qt Tutorial (http://doc.trolltech.com/3.0/tutorial.html)

und dann das hier:

GTK Tutorial (http://www.gtk.org/tutorial/)

tuxipuxi
30-08-2002, 17:43
na,das war ja ne umfangreiche antwort,dank dir :) .

jetzt mal ne frage,ich möchte jetzt c++ lernen und dann qt anwenden..
wie soll ich vorgehen..?

zur zeit lese ich tutorials von http://www.onlinetutorials.de/cpp-index.htm .
welches buch könntest mir empfehlen?
soll es ein speziell auf linux bezogenes buch sein?


ciao michi

axeljaeger
30-08-2002, 18:14
Ich besitze gar kein Buch über Qt, habe einfach mit besagtem Qt Tutorial angefangen. Fairerweise muß ich aber zugeben, ich hatte Vorkenntnisse in Java. Die Doku von Qt ist so gut, das du nichts anderes brauchst, vorrausgesetzt, du bist dem Englischen mächtig. Qt ist mit Sourcecode bei allen Linux-Distributionen dabei. In der Regel liegt die Doku im Verzeichnis /usr/lib/qt3/doc, oder halt /usr/lib/qt2/doc, je nachdem, wie alt dein Linux ist. Ansonsten wieder hier nachfragen.

PS: Das GTK Tutorial ist toll gel? Man versteht gar nichts. Ich habe immer das Gefühl, die wollen's abichtlich kompliziert machen. In meiner ersten Antwort habe ich mich noch bemüht, neutral zu bleiben. Ist ja jetzt nicht mehr nötig, du hast dich ja entschieden.

tuxipuxi
30-08-2002, 18:16
guut,

aber ich bin ja auch in der nicht-grafischen programmierung im lernstatus...was empfiehlste da?

p.s:was hältst du von "c++ lernen und professionell anwenden"?

edit:

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=2049017853

taugt wahrscheinlich garnix oder?

axeljaeger
30-08-2002, 18:22
Das Buch hab ich auch, es ist nicht schlecht, aber ein bißchen dünn. Es behandelt Qt und GTK, aber hauptsächlich GTK. Desweiteren ein bißchen Systemprogrammierung. Ich hatte C++ Grundlagen von Databecker und das fand ich ziemlich schrecklich. Solltest du wirklich Qt für deine Programme verwenden, kapselt duch das volkommen voom drunterligenden Linux ab. Das ist nicht negativ gemeint, ich will damit nur sagen, du brauchst jetzt nicht großartig Konsolenprogramme und Linuxsystemprogrammierung pauken. Das ist uninteressant und frustrierend. Ich fand "C++ - echt einfach" nicht schlecht. Ist glaube ich auch von Data Becker.

tuxipuxi
30-08-2002, 18:25
hast du icq? wäre toll wenn du mich addest: 131115261

aber ich verstehe deinen satz nicht ganz.
du meinst ich brauche nicht viel grundlagen machen weil qt eh anders ist?
ne,hab ich wohl falsch verstanden...
ich mein,ohne grundlagen keine grafik...oder?


ciao michi


p.s: würdst du mir das c++ buch verkaufen?

axeljaeger
30-08-2002, 19:15
Nein, ich meine es ist unbefriedigend, vor einer Textkonsole zu sitzen und sachen auszugeben und einzulesen. Die Basics - sprich if, switch, do, for - Funktionen und Klassen wirst du ja wohl draufhaben, bzw. in deinen Büchern finden. Und ob du jetzt

cout << "Wie heist du?" << endl;

oder aber

QLabel lblAskName = new QLabel("Wie heist du?", this);

schreibst, ist vom Schwierigkeitsgrad vergleichbar, denke ich. Nur letzteres sieht besser aus ;-) Und wenn du deinen Freunden und Verwandten zeigst, das du schon "DOS-Programme" schreiben kannst, wirst du sie damit nicht begeistern.

Was du jetzt brauchst, ist Erfahrung, und die kriegst du nur durchs programmieren selbst. Wie und mit was ist ziemlich egal.


PS: Ich hab dich geaddet