Tutorial: Windows 7 + Geany + MinGW + GTK2

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
forumnewbie
Beiträge: 80
Registriert: Di Jan 15, 2013 9:02 pm

Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von forumnewbie » So Mär 16, 2014 10:53 pm

Hi!

Hier ein kleines Tutorial, wie man unter Windows 7 mit einer einfachen IDE wie Geany GTK2 Anwendungen erstellen kann.
Die Anleitung ist von mir und ist vielleicht nicht optimal aber sehr einfach und schnell gemacht. Und das wichtigste ist, ES LÄUFT. Auch das Beispiel http://www.proggen.org/doku.php?id=c:tu ... sourcecode läuft damit einwandfrei!

1. GTK+ 2.24 (bzw aktuelle 32 bit Version) all-in-one bundle herunterladen und in ein neues Verzeichnis z.B. C:\OPT\GTK entpacken.
2. MinGW-Installer herunterladen und in das neue Verzeichnis z.B. C:\OPT\MinGW installieren (mingw32-base Packackage für C).
3. Umgebungsvariablen für MinGW und GTK setzen:
Systemsteuerung->Alle Systemsteuerungselemente->System->Einstellungen ändern->(Systemeingenschaften)->Erweitert->Path(unter Systemvariablen und nicht PATH!)->Bearbeiten->;C:\OPT\MinGW\bin\;C:\OPT\GTK\bin\ eintragen (Pfad ggf. anpassen) ->OK und Rechner neustarten.
4. Geany installieren und starten. Erstellen -> Kommandos zum Erstellen konfigurieren:
Kommandos für C:
Das dritte leere Label z.B. als GTK2 benennen und bei Kommandos daneben folgendes eingeben (die genauen Flags mittels pkg-config.exe ermitteln und ggf. anpassen! Siehe dazu Zusatzinformation:

Code: Alles auswählen

gcc -g "%f" -o "%e" -mms-bitfields -IC:/OPT/GTK/include/gtk-2.0 -IC:/OPT/GTK/lib/gtk-2.0/include -IC:/OPT/GTK/include/atk-1.0 -IC:/OPT/GTK/include/cairo -IC:/OPT/GTK/include/gdk-pixbuf-2.0 -IC:/OPT/GTK/include/pango-1.0 -IC:/OPT/GTK/include/glib-2.0 -IC:/OPT/GTK/lib/glib-2.0/include -IC:/OPT/GTK/include -IC:/OPT/GTK/include/freetype2 -IC:/OPT/GTK/include/libpng14 -LC:/OPT/GTK/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
5. Unter Erstellen->GTK2 wählen und Spass haben!

Zusatzinformation:
In der Konsole ins GTK\BIN Verzeichnis navigieren

Code: Alles auswählen

cd C:\OPT\GTK\bin\
und folgendes eingeben:

Code: Alles auswählen

pkg-config.exe --cflags gtk+-2.0 > ..\compilerflags.txt

Code: Alles auswählen

pkg-config.exe --libs gtk+-2.0 > ..\linkerflags.txt
Die Textdateien werden in dem Ordner GTK erstellt.


Fertig.

Eventuell muss der Rechner nicht neu gestartet werden. Ich habe das aber sicherheitshalber gemacht.
Und man kann wahrscheinlich den langen Befehl mit den ganzen Flags abkürzen. Ich habe folgendes versucht

Code: Alles auswählen

gcc -g "%f" -o "%e" pkg-config.exe --cflags gtk+-2.0  pkg-config.exe --libs gtk+-2.0
und

Code: Alles auswählen

gcc -g "%f" -o "%e" `pkg-config.exe --cflags gtk+-2.0  pkg-config.exe --libs gtk+-2.0`
aber bekomme dann:
gcc -g "main.c" -o "main" gcc -g "main.c" -o "main" `pkg-config.exe --cflags gtk+-2.0 --libs gtk+-2.0` (im Verzeichnis: C:\Users
gcc: error: gcc: No such file or directory
gcc: error: `pkg-config.exe: No such file or directory
gcc: error: gtk+-2.0: No such file or directory
gcc: error: gtk+-2.0`: No such file or directory
gcc: error: unrecognized command line option '--cflags'
gcc: error: unrecognized command line option '--libs'
Kompilierung fehlgeschlagen.
Ich habe mehrere verschiedene GTK Beispiele ausprobiert und alle haben einwandfrei funktioniert. Und das beste ist, Geany mit MinGW unterstützt C99 Standard, was VS2013 noch nicht macht und ist dazu natürlich viel schneller.

Benutzeravatar
oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen
Kontaktdaten:

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von oenone » Mo Mär 17, 2014 11:21 am

Die Kommandozeile musst du in einer Bash-Shell ausführen.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von Xin » Mo Mär 17, 2014 11:37 am

forumnewbie hat geschrieben: und folgendes eingeben:

Code: Alles auswählen

pkg-config.exe --cflags gtk+-2.0 > ..\compilerflags.txt

Code: Alles auswählen

pkg-config.exe --libs gtk+-2.0 > ..\linkerflags.txt
Die Textdateien werden in dem Ordner GTK erstellt.
Und was mache ich mit den Text-Dateien?
forumnewbie hat geschrieben:Und man kann wahrscheinlich den langen Befehl mit den ganzen Flags abkürzen. Ich habe folgendes versucht

Code: Alles auswählen

gcc -g "%f" -o "%e" pkg-config.exe --cflags gtk+-2.0  pkg-config.exe --libs gtk+-2.0
und

Code: Alles auswählen

gcc -g "%f" -o "%e" `pkg-config.exe --cflags gtk+-2.0  pkg-config.exe --libs gtk+-2.0`
aber bekomme dann:
gcc -g "main.c" -o "main" gcc -g "main.c" -o "main" `pkg-config.exe --cflags gtk+-2.0 --libs gtk+-2.0` (im Verzeichnis: C:\Users
gcc: error: gcc: No such file or directory
gcc: error: `pkg-config.exe: No such file or directory
Hätte mich auch gewundert, wenn eine Windows-Kommandozeile das geschluckt hätte. ^^

Die `Tüdel-Argumente` sind Befehle, deren Ausgabe (was Du nach *.txt geschrieben hast) genau an dieser Stelle in diesen Befehl einfügt. Rekursive Befehlsaufrufe quasi. ^^ Da darf es dann schon die Bash sein. Unter Linux läuft das.
forumnewbie hat geschrieben:Ich habe mehrere verschiedene GTK Beispiele ausprobiert und alle haben einwandfrei funktioniert. Und das beste ist, Geany mit MinGW unterstützt C99 Standard, was VS2013 noch nicht macht und ist dazu natürlich viel schneller.
GCC und MinGW unterstützen laut wikipedia beide teilweise den C99-Standard - das muss aber nicht der gleiche Teil sein. Wobei ich wirklich selbst überrascht bin, dass einer der bekannten Compiler da noch hinterherhinkt.

Ich werde mir Geany auch mal genauer angucken und ggfs. ins Wiki übernehmen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

forumnewbie
Beiträge: 80
Registriert: Di Jan 15, 2013 9:02 pm

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von forumnewbie » Mo Mär 17, 2014 2:09 pm

oenone hat geschrieben:Die Kommandozeile musst du in einer Bash-Shell ausführen.
Das soll unter Windows laufen bzw. in Geany direkt.
Xin hat geschrieben:
forumnewbie hat geschrieben: und folgendes eingeben:

Code: Alles auswählen

pkg-config.exe --cflags gtk+-2.0 > ..\compilerflags.txt

Code: Alles auswählen

pkg-config.exe --libs gtk+-2.0 > ..\linkerflags.txt
Die Textdateien werden in dem Ordner GTK erstellt.
Und was mache ich mit den Text-Dateien?
Das ist für die Geany Punkt 4 in meiner Anleitung.
Man muss bei diesem Befehl gcc -g "%f" -o "%e" ... ... den kompletten Inhalt beider Textdateien einfügen, dort wo ich ... geschrieben habe.

Code: Alles auswählen

Ich werde mir Geany auch mal genauer angucken und ggfs. ins Wiki übernehmen.
Und teste bitte diese kurze Anleitung. Ich hoffe, dass ich nichts vergessen habe. Man kann natürlich noch ein paar Screenshots machen. Der Zeitaufwand das einzurichten ist sogar für einen Anfänger nur wenige Minuten (wenn man weiß wie) und Geany ist sehr schlank im Vergleich zu anderen IDEs. Wenn man als Anfänger, der noch nie so etwas konfiguriert hat, eine Anleitung z.B. zum Visual Studio mit GTK2 sieht mit so vielen Einstellungen und viel Text, dann gibt man meistens gleich auf.
Noch ein weiterer großer Vorteil ist, dass man neue Projekte nicht wieder für GTK2 konfigurieren muss, wie das bei Visual Studio der Fall ist. Dieses gcc-Komando mit den Flags übernimmt alles.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von Xin » Mo Mär 17, 2014 2:36 pm

forumnewbie hat geschrieben:
Xin hat geschrieben:
forumnewbie hat geschrieben:Die Textdateien werden in dem Ordner GTK erstellt.
Und was mache ich mit den Text-Dateien?
Das ist für die Geany Punkt 4 in meiner Anleitung.
Ich weiß, aber ich habe GTK auch schon eingerichtet - die anderen Artikel dazu sind ja von mir. ^^
Ich will auf den Punkt hinaus, dass Du eine Anleitung immer so schreiben musst, dass sie jemand versteht, der das noch nicht gemacht hat.

Aber ich finde es durchaus top, dass Du solche Anleitungen schreibst.
forumnewbie hat geschrieben:Und teste bitte diese kurze Anleitung.
Ich schreibe nichts, was ich nicht auch mal selbst getestet habe. Die Anleitung wäre dann auch nicht so kurz und mit Bildern usw.
Aber dafür brauche ich halt Zeit.
forumnewbie hat geschrieben:Der Zeitaufwand das einzurichten ist sogar für einen Anfänger nur wenige Minuten (wenn man weiß wie) und Geany ist sehr schlank im Vergleich zu anderen IDEs. Wenn man als Anfänger, der noch nie so etwas konfiguriert hat, eine Anleitung z.B. zum Visual Studio mit GTK2 sieht mit so vielen Einstellungen und viel Text, dann gibt man meistens gleich auf.
Darum habe empfehle ich auch eher Make als Visual Studio.

Von Geany habe ich schon gehört und wollte mir das auch mal ansehen. Ich grabe aber noch an meiner Todoliste der letzten Monate... also sowas momentan für nichts kurzfristiges.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen
Kontaktdaten:

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von oenone » Mi Mär 19, 2014 9:38 am

forumnewbie hat geschrieben:
oenone hat geschrieben:Die Kommandozeile musst du in einer Bash-Shell ausführen.
Das soll unter Windows laufen bzw. in Geany direkt.
Bash läuft auch unter Windows :P

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Tutorial: Windows 7 + Geany + MinGW + GTK2

Beitrag von Xin » Mi Mär 19, 2014 11:28 am

oenone hat geschrieben:
forumnewbie hat geschrieben:
oenone hat geschrieben:Die Kommandozeile musst du in einer Bash-Shell ausführen.
Das soll unter Windows laufen bzw. in Geany direkt.
Bash läuft auch unter Windows :P
...nachdem man cygwin installiert hat...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten