C Programmieren unter Windows?
Hallo allerseits!
Bevor mir jemand Linux als Betriebssystem zum Entwickeln und Programmieren vorschlagen möchte: Die Benutzung von Linux ist auf meinem PC bereits gescheitert, womöglich ist die Hardware für Linux Systeme nicht ganz stimmig, oder ich bin einfach zu blöd.
Ich interessiere mich sehr für die Programmiersprachen C und C++ und programmiere derzeit auch regelmäßig in diesen Sprachen. Das mit der Aussicht, das über die Jahre professioneller zu machen.
Gibt es für Windows eine geeignete IDE, mit der man auch 'professioneller' entwickeln kann und einen Compiler, die immer auf dem neuesten Stand (Wie in C etwa derzeit C11) ist?
Bis jetzt habe ich immer unter Verwendung der Pelles C IDE programmiert, das kann aber auf Dauer auch nicht das Richtige sein - Zumal der Compiler (habe mir damals MinGW installiert) etwas veraltet zu sein scheint, Header-Dateien wie etwa <uchar.h> sind dem noch nicht bekannt...
Freue mich über jeden Rat und jede Hilfe!
LG
7 Antworten
Ich empfehle dazu den Qt-Creator. Das ist eine komplette Entwicklungsumgebung für C und C++ bestehend aus Editor, Debugger, Formdesigner und der plattformunabhängigen Qt-Klassenbibliothek. Damit kann man plattformunabhängig programmieren ohne den Quellcode ändern zu müssen. Das kann man sowohl unter einer kostenlosen Open Source Lizenz lizenzieren oder unter einer kostenpflichtigen propritären Lizenz. Der Funktionsumfang ist bei beiden Lizenzen identisch. Hier die benötigten Downloads:
für Windows:
- MinGW installieren, das sind die GCC Compiler für Windows: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download
- Qt-Creator: https://www.qt.io/download Wähle Open Source. Diese Lizenz ist kostenlos. Das Kompilieren wird vom Qt Creator aus gestartet.
- Qt Installer Framework, damit kann man sein fertig kompiliertes Programm mit allen benötigten Laufzeitbibliotheken und Frameworks in ein Installationspaket (setup.exe) zu verpacken. Ideal wenn man das Programm weitergeben möchte: https://download.qt.io/official_releases/qt-installer-framework/3.1.1/QtInstallerFramework-win-x86.exe
Nach der Installation muss man im Qt-Creator den Pfad zu MinGW eintragen.
für Mac:
- Zuerst muss man die GCC Compiler installieren. Das geht so: In der Kommandozeile brew install gcc4.8 eingeben. Xcode ist nicht erforderlich.
- Qt-Creator: https://www.qt.io/download Wähle Open Source. Diese Lizenz ist kostenlos. Das Kompilieren wird vom Qt Creator aus gestartet.
- Qt Installer Framework, damit kann man sein fertig kompiliertes Programm mit allen benötigten Laufzeitbibliotheken und Frameworks in ein DMG-Paket verpacken. Ideal wenn man das Programm weitergeben möchte: https://download.qt.io/official_releases/qt-installer-framework/3.1.1/QtInstallerFramework-mac-x64.dmg
Für Linux installiert man die GCC Compiler und den Qt-Creator über die Paketverwaltung der jeweiligen Distribution. Das Qt-Installer Framework gibt es nicht für Linux, dort erzeugt man je nach Distribution mit den Bordmitteln deb oder rpm Installationspakete.
Die Zukunft des Programmierens ist die indem man von Anfang an plattformunabhängig programmiert. Das ist in der heutigen Zeit immer wichtiger. Wenn man z.B. irgendwann auf einen Mac umsteigt, kann man damit wie gewohnt weiter programmieren. Man muss nichts umlernen.
Beispiel: Google Earth, VLC Media Player, die freie DJ-Software Mixxx, Audacity und die freie Videoschnitt- und Bearbeitungssoftware OpenShot wurden mit dem Qt-Creator programmiert. Deswegen war es für die Programmierer leicht das für Windows, Mac und Linux anzubieten.
Mit Visual Studio kann man nur Windows-Programme erstellen. Ausserdem hat die Community Edition einen reduzierten Funktionsumfang. Mit den MinGW GCC Compilern und dem Qt-Creator hat man eine plattformunabhängige Lösung. Ausserdem hat die Qt-Klassenbibliothek auch Funktionen wie auf die Schnittstellen zugreifen, Netzwerkfunktionen und Multimediafunktionen. Ausserdem hat man egal wie man es lizenziert immer den gleichen Funktionsumfang und dieser ist größer als bei Visual Studio Community.
Was ist gemeint mit "Funktionen wie auf die Schnittstellen zugreifen"? Um welche Schnittstellen geht es da?
Sind mittels Qt-Creator erstellbare GUIs web-basierte GUIs (solche also, die sich per HTML präsentieren)? Oder sind es klassische Client/Server-GUIs von der Qualität, wie u.A. die MFC sie produziert hat?
Können Sie mir eine per Qt-Creator implementierte Internet-Seite nennen (so dass ich sehen kann, wie das Look & Feel per Qt-Creator implementierter Anwendungen aussieht)?
Man kann mit der Qt-Klassenbibliothek z.B. auf folgende Schnittstellen zugreifen: serielle Schnittstelle, parallele Schnittstelle, USB und Bluetooth. Diese APIs sind in Qt vorhanden.
Die grafischen Elemente von Qt sind ganz klassisch Client/Server. Die grafischen Elemente z.B. von Google Earth, VLC Player, Audacity und Mixxx z.B. verwenden für die grafischen Elemente die Qt-Bibliothek. Dazu einfach diesen Wikipedia-Artikel durchlesen: https://de.wikipedia.org/wiki/Qt_(Bibliothek)
Ich bedanke mich für diese ausführliche und detailierte Antwort - Sogar mit Installationsanleitung!
Plattformunabhängigkeit ist super, sind die MinGW Compiler denn immer auf dem neuesten Stand?
Ich nehme als IDE Codeblocks gepaart mit dem Dokumentationstool Doxygen.
Compiler kann man dort meines Wissens sogar aussuchen.
Cool, da habe ich ja gleich eine Meinung vom Experten. Kostet Codeblocks was? :/
Visual Studio von Microsoft. Sehr verbreitet, entsprechend grosse Community die helfen kann.
Ist mir geläufig, habe ich aber noch nicht benutzt...
Danke dir erstmal :)
In beiden Sprachen noch nichts gemacht, kenne sie aber.
Ich bin ansonsten gerade an JavaScript noch dran. Ich komme für's Web halt nicht drum rum, auch wenn ich die Syntax oft Schei*e finde :D
C und C++ kann ich vor allem gut leiden, weil sie nicht so eine 'runterabstrahierte' Syntax haben.
Stimmt schon. Ich kenne mich mit PHP ganz gut aus, also ich weiß dort eigentlich alles mögliche zu implementieren. Aber ich habe mir schon oft an den Kopf gefasst, wenn ich die vorhandenen Funktionen mal so begutachtet hab:
jewishtojd()
Converts a date in the Jewish Calendar to Julian Day Count
In JavaScript gibt es den ganzen Müll halt nicht. Da sind die wichtgsten Funktionen gegeben, mit denen der Rest implementiert werden kann.
Code::Blocks geht, egal ob Du nun einen aktuellen MinGW dazu nimmst, oder clang, oder ...
Du kannst auch eclipse CDT nutzen.
Visual Studio Code
QT Creator
Netbeans
Ach, im Prinzip geht auch der Nachfolger von Bloodshed Dev-CPP (Orwel Dev-CPP?)
Es gibt doch einiges, aus dem man wählen kann, man muß nur eines finden, was einem gefällt.
Wie viele hier bereits vorgeschlagen: Der QtCreator ist ein sehr gutes Tool.
Einige Alternativen: Visual Studio, CLion, NetBeans IDE, Eclipse CDT, CodeLite.
Was sind Vor- und Nachteile von MinGW vs MS Visual Studio Community Edition?
Worin sind sie nicht mit einander kompatibel?