ubuntuusers.de

Unterschied Linux / Windowsprogrammierung in C++?

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

Xfire

Anmeldungsdatum:
31. Oktober 2006

Beiträge: Zähle...

Wohnort: Bremen

Hallo,

ich bin gerade dabei C++ zu erlernen.

Nun würde mich doch wirklich interessieren, worin der Unterschied beim Programmieren bei diesen OS besteht.
Geht es dabei nur um den Einsatz von anderen Bibliotheken oder erfolgt die Programmierung anders ?

Schönen Gruss

Xfire

www.lost-reality.de
-Multigaming Gemeinschaft-

Moderiert von Chrissss:

Bitte werfe mal einen Blick in den Artikel Die drei ??? und die Forenregeln. Ein Fragezeichen im Thementitel reicht aus. Vielen Dank!

Vegeta

Avatar von Vegeta

Anmeldungsdatum:
29. April 2006

Beiträge: 7943

Die Programmierung ist eigentlich dieselbe, so lange du keine systemspezifischen Funktionen benutzt, lassen sich die Sourcen ohne Anpassung unter Windows wie auch Linux kompilieren. Wenn du dich weitgehend unabhängig vom OS machen möchtest, dann wäre ein Blick auf z.B. Qt sicherlich nicht verkehrt.

Xfire

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 9

Wohnort: Bremen

Danke für die Antwort, ich werde mir mal Qt anschauen... 😀

Kopfgeldjaeger

Anmeldungsdatum:
24. Dezember 2006

Beiträge: 1168

Qt hat aber eigentlich nich direkt was mit dem Programmieren für die beiden OS zu tun 😉
Solange du nicht unbedingt die WinAPI benutzt solltest du keine größeren Probleme haben.

Vegeta

Avatar von Vegeta

Anmeldungsdatum:
29. April 2006

Beiträge: 7943

Kopfgeldjaeger hat geschrieben:

Qt hat aber eigentlich nich direkt was mit dem Programmieren für die beiden OS zu tun 😉

Mit Qt kann man plattformunabhängig (Linux, Mac und Windows) programmieren, anstatt für jedes OS einzeln programmieren zu müssen. Wenn man sich viel Arbeit sparen möchte, kommt man kaum an Qt oder einem anderen Framework vorbei.
Außerdem kann man C++ mit Qt leichter erlernen und auch schneller Programme erstellen, als wenn man sich auf C++ "beschränken" würde. Aber jeder wie er möchte 😉

useYbrain

Anmeldungsdatum:
14. Januar 2007

Beiträge: 696

GTK+ geht doch auch..? Oder irre ich mich da?

Vegeta

Avatar von Vegeta

Anmeldungsdatum:
29. April 2006

Beiträge: 7943

Pot hat geschrieben:

GTK+ geht doch auch..? Oder irre ich mich da?

Yap, natürlich ☺
Habe damit allerdings selber noch keine Erfahrungen gesammelt. Neben Qt, GTK+ gibt's auch noch wxWidgets, Ultimate++, SmartWin++ und wer weiß was sonst noch ☺

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Oh Gott, lasst um Himmels Willen die Finger von nacktem gtk! Wenn ihr ein C++-Programm mit einem gtk-Interface schreiben wollt, dann verwendet bitte auch gtkmm, die C++-Variante von gtk. Wobei man noch sagen muss, dass Qt _wesentlich_ mehr kann als gtkmm, denn bei Qt gibt es auch Klassen für Netzwerkfunktionen, Festplattenzugriff, Threading usw. usf., das fehlt meines Wissens alles in gtk.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Bin zwar kein C++ Programmierer, aber ich würde dir lieber WxWidget Empfehlen. Auf dauer hast dud a mehr von.

Gründe sind da eher die restriktive GPL unter der QT steht. Den diese erlaubt es dir nur Programme zu entwickeln die ebenfalls unter der GPL stehen. Aber vielleicht möchtest du ja gar keine Programm unter der GPL Lizenz stellen? Vielleicht möchtest du ja auch eine andere Open Source Lizenz auser die GPL nutzen?

Open Source besteht jedenfalls nicht nur aus der GPL Lizenz.

Oder vielleicht möchtest du auch mal ein Programm verkaufen, oder eben mal keine Open Source Software entwickeln?

Wxwidget ist da wesentlich freier und erlaubt dir all solche Sachen. Mit QT geht es auch. Allerdings musst du dir dann QT Kaufen!

Ansonsten ist WxWidget auch mehr als nur ein GUI Toolkit, enthält also auch Libraries für Threading, HDD Zugriff, Netzwerk etc.

Ich würde mir jedenfalls bei der Wahl des Frameworks auch mehr Gedanken machen. Nachher lernst du QT und in 2 Jahren ärgerst dich das alle deine Programme auf einmal unter der GPL stehen müssen, außer du kaufst natürlich QT.

Ich würde jedenfalls die Lizenz nicht ganz auser acht lassen.

Doener

Avatar von Doener

Anmeldungsdatum:
13. April 2006

Beiträge: 1647

Wohnort: Berlin

Ich finde das Lizenzmodell von Trolltech bezüglich QT eigentlich echt gut. Entweder du nimmst aus der Community (das Framework) und gibst an sie zurück (das Programm unter GPL) - oder du kaufst dir halt die Lizenz von Trolltech, um das Programm kommerziell zu vermarkten und hilfst so trotzdem bei der Entwicklung Freier Software, indem QT mit dem Geld verbessert wird.

Bef

Anmeldungsdatum:
8. Juli 2006

Beiträge: 306

Es kommt auch noch ein bisschen darauf an, was du programmieren möchtest.
Ich persönlich arbeite im Moment dieses Buch hier durch, das sich mit 3D Programmierung unter Linux beschäftigt.
Für Computerspiele wären QT oder Wxwidgets ziemlich overkill, statdessen ist z.B. SDL besser geeignet.
Das genannte Buch macht es aber gleich richtig und befasst sich eingehend mit dem Design von Platformunabhängigen Programmen, ohne das Verwenden von solchen High-level Bibliotheken.
Dabei wird der plattformunabhängige Kern des Programms vom platformabhängigen getrennt. Mit Hilfe der Fabrikmethode wird das ganze so realisiert, dass der Platformabhängige Code fast Pluginartig zum Programm hinzugefügt und ergänzt werden kann.

Das Buch kann ich nur empfehlen, ist meiner Meinung nach das beste Programmierbuch, das ich bisher gelesen habe (bin zwar noch lange nicht fertig, das kann ich aber jetzt schon sagen).

PS: Wenn du bei dem WIKI-Artikel nur Bahnhof verstehst, dann lass dich nicht abschrecken... im Buch habe sogar ich das verstanden (will was heissen 😉)

TheImaginator

Avatar von TheImaginator

Anmeldungsdatum:
5. Februar 2007

Beiträge: 20

Wohnort: Schwäbisch Hall

Linux ← → Windows

Kaufen, Lesen, Verstehen.
Danach weißst du dann ob du für Linux bzw. Windows programmieren willst.

Gruß TheImaginator

sonium

Anmeldungsdatum:
21. März 2005

Beiträge: Zähle...

Für Ubuntu ist natürlich GTK+ nativer. (Gnome basiert auf GTK)

Ich hab damit eigentlich ganz gute Erfahrungen gemacht. Bei wxWidgets sehe ich den Vorteil nicht wirklich, da GTK unter Windows genauso verfügbar ist und man keinen zusätzlichen Overhead mitschleppt. Und Sachen wie Threading kann GTK auch.

Letztendlich ist es aber immer noch Geschmackssache welche Library man nun verwendet. Ich finde GUI Programmierung so und so nervig.

hackepeter

Avatar von hackepeter

Anmeldungsdatum:
8. Januar 2006

Beiträge: 185

Wohnort: München

Hallo XFire,

zu den GUI Libs kann ich nichts sagen. Aber wenn du unter Windows Gygwin installierst und make verwendest, ist der ganze Prozess
recht portabel. D.H. du entwickelst auf einem OS und kannst dann problemlos auf dem Anderen übersetzen.
Es gibt ja auch portable Editoren o. IDEs: gvim, geany - oder Geheimtipp Source Navigator (in den Ubuntiu Repositories unter 'sourcenav').

Wenn du unter Windows mit VisualC++ arbeitest, beachte das der strenger auf den Standard achtet als der g++.
Portabel Projekt- bzw. Makefiles sollte auch CMake erzeugen können (habe ich selbst aber noch nicht getestet).

Ansonsten gibt's die üb(l)ichen Problembereiche wenn du systemnah programmierst.

Gruß HP

TheImaginator

Avatar von TheImaginator

Anmeldungsdatum:
5. Februar 2007

Beiträge: 20

Wohnort: Schwäbisch Hall

Achso, was ich noch sagen wollte:
Irgendjemand hatte doch gtkmm empfohlen.
Meiner Meinung nach ist das absoluter Overhead.
Solange dir bei der Benutzung von Klassen keiner abgeht, solltest du die "Grund-Library" GTK+ benutzen, welche mit einem objektorientierten Ansatz entworfen wurde (ja! Sowas geht auch in C). gtkmm kappselt das alles bloß noch in "echte" Klassen.
Bringt also absolut keinen Vorteil, bis auf den, dass es vielleicht sogar noch langsamer läuft (klassenbekloppte Javaner sehen das gerne als Vorteil. Verstehe das wer will).

Gruß TheImaginator

Antworten |