C Programmieren unter Windows?

7 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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:

  1. 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
  2. Qt-Creator: https://www.qt.io/download Wähle Open Source. Diese Lizenz ist kostenlos. Das Kompilieren wird vom Qt Creator aus gestartet.
  3. 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:

  1. Zuerst muss man die GCC Compiler installieren. Das geht so: In der Kommandozeile brew install gcc4.8 eingeben. Xcode ist nicht erforderlich.
  2. Qt-Creator: https://www.qt.io/download Wähle Open Source. Diese Lizenz ist kostenlos. Das Kompilieren wird vom Qt Creator aus gestartet.
  3. 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.


korbi27 
Beitragsersteller
 28.12.2019, 00:09

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?

0
mnlwrnr  28.12.2019, 00:11
@korbi27

Der angegebene Downloadlink von MinGW führt immer zur aktuellen stabilen Version.

0
korbi27 
Beitragsersteller
 28.12.2019, 00:11
@mnlwrnr

Gut, dann vielen Dank :)

0
grtgrt  29.12.2019, 19:17

Was sind Vor- und Nachteile von MinGW vs MS Visual Studio Community Edition?

Worin sind sie nicht mit einander kompatibel?

0
mnlwrnr  29.12.2019, 19:31
@grtgrt

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.

0
grtgrt  30.12.2019, 01:02
@mnlwrnr

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)?

0
mnlwrnr  30.12.2019, 11:32
@grtgrt

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)

0
grtgrt  30.12.2019, 13:17
@mnlwrnr

Darf ich daraus entnehmen, dass Client und Server dann nicht per HTTP mit einander sprechen (was i.A. zur Folge haben wird, dass beide auf demselben Rechner arbeiten müssen). Richtig?

0

Ich nehme als IDE Codeblocks gepaart mit dem Dokumentationstool Doxygen.

Compiler kann man dort meines Wissens sogar aussuchen.


korbi27 
Beitragsersteller
 27.12.2019, 23:47

Vielen Dank, merke ich mir.

1
korbi27 
Beitragsersteller
 27.12.2019, 23:49
@Quotenbanane

Cool, da habe ich ja gleich eine Meinung vom Experten. Kostet Codeblocks was? :/

0

Visual Studio von Microsoft. Sehr verbreitet, entsprechend grosse Community die helfen kann.

Woher ich das weiß:Berufserfahrung – Jahrzehnte IT Erfahrung, Experte für Kryptowährungen, 🐱

korbi27 
Beitragsersteller
 27.12.2019, 23:47

Ist mir geläufig, habe ich aber noch nicht benutzt...

Danke dir erstmal :)

0
Nube4618  27.12.2019, 23:50
@korbi27

Gerne. Ich habe damit fast 10 Jahre lang entwickelt.

0
korbi27 
Beitragsersteller
 27.12.2019, 23:52
@Nube4618

Welche Sprache(n) denn? Ich nutze ansonsten nur Visual Studio Code für HTML/CSS/PHP/JavaScript

0
Nube4618  27.12.2019, 23:56
@korbi27

Meistens Visual Basic oder C#. Eigentlich hätte ich am liebsten alles mit C# gemacht, hatte da aber Vorgaben vom Arbeitgeber / Lieferanten des ERP Systems.

0
korbi27 
Beitragsersteller
 28.12.2019, 00:00
@Nube4618

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.

0
Nube4618  28.12.2019, 00:09
@korbi27

Ja, sind sehr saubere und klare Sprachen. C++ ist bei mir schon länger her, war zu Zeiten wo Borland noch Marktführer in diesem Bereich war. Urzeit 😀

0
korbi27 
Beitragsersteller
 28.12.2019, 00:11
@Nube4618

Oh, aber da bleibt immer was hängen oder nicht :)

0
Nube4618  28.12.2019, 00:13
@korbi27

Ja, ist wie bei den Fremdsprachen. Auch wenn man sie länger nicht gebraucht hat, ist man schnell wieder drin...

0
korbi27 
Beitragsersteller
 28.12.2019, 00:15
@Nube4618

Ja. Ich bin vor allem eher auf der Seite strenger Typisierung, deshalb halte ich von Sprachen wie JS und PHP nicht ganz so viel. Für mich sind das (bis auf JS Desktopentwicklung) auch Skriptsprachen...

0
Nube4618  28.12.2019, 00:17
@korbi27

PHP ist die schlimmste Bastelsprache, die ich kenne. Aber halt enorm verbreitet. So ist es halt. 😖

0
korbi27 
Beitragsersteller
 28.12.2019, 00:25
@Nube4618

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.

0
regex9  28.12.2019, 01:38
@korbi27

Was spricht in diesem konkreten Fall den gegen diese vorhandene Funktion?

0

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.


korbi27 
Beitragsersteller
 28.12.2019, 00:05

Super, Dankeschön für die Hilfe!

0

Wie viele hier bereits vorgeschlagen: Der QtCreator ist ein sehr gutes Tool.

Einige Alternativen: Visual Studio, CLion, NetBeans IDE, Eclipse CDT, CodeLite.


regex9  28.12.2019, 02:26

Wort im ersten Satz vergessen: haben.

0