http://www.pronix.de -> Tutorials -> Compiler-Anleitungen (C++) -> Code::Blocks -> wxWidgets verwenden


Code::Blocks: wxWidgets verwenden
1.  Zuerst müssen Sie sich hierbei den neuesten plattformunabhängigen Quellcode von wxWidgets (als ZIP-Paket) von http://wxwidgets.org/downloads/ (wählen Sie wxAll) herunterladen.  Entpacken Sie als nächstes das Paket in ein Verzeichnis Ihrer Wahl. In meinem Fall ist dies im Verzeichnis C:\wxWidgets-2.8.10.

Hinweis: Wenn Sie die Systemvariablen für MinGW bereits im Abschnitt Boost verwenden gesetzt haben, können Sie hier auf die Schritte 2 bis 5 verzichten und gleich mit Schritt 6 fortfahren.

2.  Im Gegensatz zum Visual C++-Compiler dürfte es eher unwahrscheinlich sein, dass die Umgebungsvariable PATH für den MinGW-Compiler richtig eingerichtet ist. Dies ist übrigens ein häufiges Problem, warum es nicht klappt, Bibliotheken mit MinGW zu bauen. Suchen Sie sich also zunächst den Pfad, wo MinGW installiert ist. Sollten Sie MinGW gleichzeitig mit Code::Blocks installiert haben, finden Sie den Pfad im Verzeichnis von Code::Blocks. Ich habe MinGW nachträglich installiert und somit lautet mein bin-Verzeichnis zum Compiler und Linker C:\MinGW\bin und zum libexec-Verzeichnis C:\MinGW\libexec\gcc\mingw32\3.4.5.

3.  Jetzt müssen Sie die Systemeigenschaften öffnen (bspw. über Systemsteuerung * System * Erweiterte Systemeinstellungen oder Arbeitsplatz * Eigenschaften). Beim sich öffnenden Dialog Systemeigenschaften finden Sie einen Reiter Erweitert und darunter eine Schaltfläche Umgebungsvariablen..., welche Sie jetzt anklicken dürfen.

Code::Blocks: wxWidgets verwenden

4.  Jetzt müssen Sie bei Systemvariablen (Achtung nicht gleichzusetzen mit den Benutzervariablen für User) eine neue Variable bei Path hinzufügen. Vermutlich werden hierbei schon eine ganze Menge an Pfaden vorhanden sein. Wählen Sie entweder Path in der Liste aus und klicken Sie auf Bearbeiten,  oder falls Path bereits existiert, klicken Sie auf die Schaltfläche Neu.

Code::Blocks: wxWidgets verwenden

5.  Fügen Sie jetzt die Pfade zum bin- und libexec-Verzeichnis ans Ende aller (falls mehrer Pfade bereits vorhanden sind) Path-Variablen. Beachten Sie, dass Sie die einzelnen Pfade mit einem Semikolon trennen müssen. Bestätigen Sie den Dialog mit der Schaltfläche Ok.

Code::Blocks: wxWidgets verwenden

6.  Um wxWidgets zu bauen, benötigen Sie die Kommandozeile (cmd.exe).  Wechseln Sie jetzt mit cd in das build-Verzeichnis, wo Sie das heruntergeladene wxWidgets entpackt haben (in meinem Fall ist dies C:\wxWidgets-2.8.10\build\msw). msw steht hier für Microsoft Windows.

Hinweis: Mehr und genaueres zum Bauen von wxWidgets für Code::Blocks finden Sie auf der Wiki-Webseite http://wiki.wxwidgets.org/CodeBlocks_Setup_Guide.

Code::Blocks: wxWidgets verwenden; wxWidgets bauen

7.  In diesem Verzeichnis finden Sie jetzt eine Makefile mit dem Namen makefile.gcc. Mithilfe dieser Datei können wir unsere wxWidgets-Bibliothek mit mingw32-make.exe bauen lassen. Zunächst wollen wir das Projekt mit clean auf das nötigste reduzieren (bzw. säubern; bereinigen) um anschließend das Projekt neu zu bauen. Setzen Sie als zunächst folgenden Befehl ab:

Code::Blocks: wxWidgets verwenden; wxWidgets bauen


8.  Anschließend können Sie wxWidgets in der Kommandozeile mit folgender Zeile bauen (und sich mindestens eine Tasse Tee holen):

mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0

Code::Blocks: wxWidgets verwenden; wxWidgets bauen

Hinweis: Nach dem Bauen finden Sie im lib-Verzeichnis ein weiteres Verzeichnis mit dem Namem gcc_dll (bei mir hier C:\wxWidgets-2.8.10\lib\gcc_dll) wo Sie die fertigen Bibliotheksdateien finden. Selbstverständlich können Sie jetzt hergehen und diese Dateien in ein anderes Verzeichnis (bspw. ins MinGW-Verzeichnis) verschieben. Vergessen Sie hierbei allerdings nicht die Headerdateien (bei mir im Verzeichnis C:\wxWidgets-2.8.10\include).

9.  Nachdem Sie wxWidgets selbst "gebaut" haben, können Sie anfangen, Anwendungen mit wxWidgets zu erstellen. Da hier für das Verzeichnis von Boost C:\wxWidgets-2.8.10 verwendet wurde (und die Dateien nicht woanders hinkopiert wurden), finden Sie dort im Verzeichnis C:\wxWidgets-2.8.10\include die Headerdateien und im Verzeichnis C:\wxWidgets-2.8.10\lib\gcc_dll die Bibliotheken. Voraussetzung, dass Sie Anwendungen mit wxWidgets erstellen können, ist, dass Sie ein neues Projekt mit Code::Blocks erstellen. Hier soll das Beispiel aus dem Kapitel 10.3.2 vom Buch übersetzt werden.  Erstellen Sie daher zunächst ein neues Projekt wie gewohnt über das Menü File * New * Project.

Code::Blocks: wxWidgets verwenden

10.  Wählen Sie anschließend im Dialog New from template das Icon wxWidgets project aus und klicken Sie auf die Schaltfläche Ok.

Code::Blocks: wxWidgets verwenden

11.  Als nächstes erfolgt wie gewohnt der Wizard-Dialog, wo Sie mit der Schaltfläche Next zum nächsten Dialogfenster springen können.

Code::Blocks: wxWidgets verwenden

12.  Im nächsten Dialog wählen Sie die Version für wxWidets aus, die Sie zuvor gebaut haben. Im Beispiel wurde eine 2.8er-Version (bei mir genau 2.8.10) erstellt und die wir hier auch auswählen. Ältere Versionen, wie hier mit 2.6.x sind nicht unbedingt zu empfehlen. Auch eine neuere unstabile Beta-Versionen, wie hier mit 2.9.x, kann ausgewählt und verwendet werden. Klicken Sie anschließend auf die Schaltfläche Next.

Code::Blocks: wxWidgets verwenden

13.  Jetzt können Sie wie gewohnt im nächsten Dialog den Titel (Project title) und das Verzeichnis (Folder to create project in) für das neue Projekt angeben. Die anderen beiden Textfelder werden dadurch automatisch gefüllt. Klicken Sie anschließend auf Next.

Code::Blocks: wxWidgets verwenden

14.  Wollen Sie Details, wie Ihren Namen, E-Mail-Adresse und Ihre Webseite angeben, können Sie dies im nächsten Dialog machen. Diese Details werde mit in das Projekt aufgenommen. Weiter geht es mit der Schaltfläche Next.

Code::Blocks: wxWidgets verwenden

15.  Im nächsten Dialog müssen Sie Auswählen ob Sie Ihre Anwendung mit einen der RAD-Tools (Preferred GUI Builder) wie wxSmith oder wxFormBuilder erstellen wollen, oder den Code "manuell" eintippen wollen. Für die manualle Eingaben müssen Sie die Radioschaltfläche None auswählen. Hierbei sind dann die beiden Radioschaltflächen von Application Type nebensächlich. Mit Next geht es weiter zum nächsten Dialogfenster.

Hinweis: Ein sehr gutes Tutorial zum GUI-Builder wxSmith finden Sie auf dieser Webseite: http://wiki.codeblocks.org/index.php?title=WxSmith_tutorials

Code::Blocks: wxWidgets verwenden

16. Die Schritte 16 und 17 müssen Sie nur erstmalig durchführen, um Code::Blocks mit den Headerdateien und Bibliotheken von wxWidgets bekannt zu machen. Beim nächsten wxWidget-Projekt brauchen Sie lediglich auf die Schaltfläche Next klicken. Steht hier die Zeichenfolge $(#wx) so weiß Code::Blocks noch nicht, wo sich wxWidget befindet. Klicken Sie daher beim erstmaligen Einrichten die Schaltfläche mit den drei Punkten (...) neben dem Textfeld von wxWidgets' location.

Code::Blocks: wxWidgets verwenden

17.  Jetzt öffnet sich ein Fenster mit dem Titel Global Variable Editor, wo Sie angeben können, wo sich wxWidgets auf Ihrem System befindet. Ich habe bspw. wxWidgets im Verzeichnis C:\wxWidgets-2.8.10 gebaut und gebe daher dieses Verzeichnis bei base an. Mit der Schaltfläche mit den drei Punkten können Sie sich dieses Verzeichnis auch bequem auswählen. Ebenso habe ich hier die Angaben zum include-Verzeichnis und lib-Verzeichnis, wo sich die Headerdateien und nötigen Bibliotheken befinden, angegeben. Sollten sich diese Daten mal ändern, weil Sie bspw. eine neuere oder andere Version von wxWidgets gebaut haben oder wxWidgets in ein anderes Verzeichnis kopiert haben , können Sie dieses Fenster Global Variable Editor jederzeit nachträglich über das Menü Settings * Global variables... aufrufen und die Angaben wieder ändern.

Code::Blocks: wxWidgets verwenden

Ggf. werden Sie anschließend im Dialog wxWidgets project nochmals abgefragt, dass oberste Wurzelverzeichnis auszuwählen, wo sich wxWidgets bei Ihnen befindet.

Code::Blocks: wxWidgets verwenden

18.  Im nächsten Fenster können Sie den Compiler auswählen, den Sie für das Projekt verwenden wollen. Standardmäßig dürfte diese GNU GCC Compiler (MinGW) sein. Hierbei können Sie auch einstellen, ob Sie eine Debug- und/oder Release-Version des Projekts erstellen wollen und ein Häkchen davor setzen. Sie können dabei auch das Verzeichnis ändern, wo (ausgehend vom Verzeichnis welches Sie für Folder to create project in im Schritt 13 zuvor verwendet haben) sich anschließend das ausführbare Programm befinden soll.

Code::Blocks: wxWidgets verwenden

19.  Im nächsten Fenster können Sie einige Konfigurations-Optionen für das Projekt setzen. Diese Einstellungen sind tlw. davon abhängig, wie Sie die wxWidgets-Bibliothek gebaut haben.  Eine DLL haben wir gebaut, ebenso wie die Monolithische Bibliothek. Unicode haben wir nicht, daher können wir die Checkbox nicht aktivieren. Bei den weiteren Settings können Sie außerdem Create Empty Project auswählen. Weiter geht es wieder mit der Schaltfläche Next.

Code::Blocks: wxWidgets verwenden

20.  Zwei neue Dateien für base.cpp und base.h können Sie jetzt, wie im Abschnitt Mehrere Quelldateien- und Headerdateien übersetzen mit den Schritten 8 bis 13 beschrieben wurde, hinzufügen.  Jetzt können Sie den Quellcode eingeben (oder eben per Copy & Paste in die entsprechenden Dateien einfügen).

Code::Blocks: wxWidgets verwenden

21.  Am Ende  können Sie das Projekt wie gewohnt mit Build * Build and run (bzw. F9) übersetzen und ausführen. Das Programm bei der Ausführung:

Code::Blocks: wxWidgets verwenden