I. Einführung
Ziele:
- Einrichten von FLTK unter MS Windows
- Kurze Einführung in die Benutzung von FLUID.
- Kompilieren unter Verwendung von Makefiles
- Vor- und Nachteile von FLUID
Einrichten von FLTK unter MS Windows |
- Zur Installation unter Windows benötigt man drei Dinge:
- MinGW Compiler für C++
Dieser kann von sourceforge.net unter
http://surcefrge.net/project/showfiles.php?group_id=2435&package_id=82721 downgeloadet werden. Dabei findet man
auf dieser Seite mehrere Einträge. Benötigt wird die EXE-Datei, die direkt unter "MinGW" zu finden.
- MySYS-Konsole (Arbeitsumgebung für MinGW Compiler)
Auf der gleichen Seite wie den MinGW-Compiler findet man ein paar Zeilen weiter oben auch MySYS, auch hier die EXE downloaden.
- FLTK-Bibliothek
Auch diese Bilbiothek kann man sourceforge.net downloaden, unter
http://sourceforge.net/project/showfiles.php?group_id=6429&package_id=6498. Ich gehe an diese Stelle auf die Version
fltk-1.1.6 ein, aber die Anweisungen sind allgemeingültig für die Version 1.1.x. Ich empfehle den Download im Format *.tar.gz
- Anschließend wird die MinGW.exe-Datei ausgeführt und der Compiler installiert. Wenn dies geschehen ist, muss noch die MySYS-Umgebung
installiert werden.
Am Ende der Installation taucht ein Shell-Fenster auf und es wird gefragt, ob MySYS mit einem bereits vorhanden MinGW-Compiler
normalisiert werden soll. Es empfiehlt sich an dieser Stelle die Frage mit ja zu beantworten (Taste "y").
In der nächsten Frage wird man gefragt, ob MinGW bereits installiert ist und auch dies mit ja beantworten. Zu guter letzt
fragt man, wo sich MinGW befindet und hier muss das Installationsverzeichnis eingegeben werden (möglichst Groß- und Kleinschrei
bung beachten) und normale Slashs statt Backslashs verwenden, z.B.
c:/Programme/Programmierung/MinGW
- Nun ist MinGW und MySYS fertig eingerichtet und es müsste sich im Startmenü ein Eintrag für die MySYS-Umgebung finden,
ausführen!
- Es öffnet sich eine gelbe Konsole, die ein bisschen an die Linux-Shell erinnert. Nun gilt es in dieser MySYS-Umgebung die
FLTK-Engine einzuspielen.
Dazu legt man als erstes ein Verzeichnispfad an, dies geschieht über diesen Befehl:
mkdir -p /usr/local/src
Danach wechselt man mit
cd /usr/local/src
in das eben angelegte Verzeichnis.
- Nun muss das FLTK-Paket entpackt werden. Die FLTK-Datei hat die Struktur FLTK-1.x.x-source.tar.gz, z.B. "FLTK-1.1.6-source.tar.gz".
Im folgenden müssen Sie anstelle der beiden x natürlich die Zahlen eintragen, die mit der Datei übereinstimmen, die Sie
downgeloadet haben. Entpackt wird über den Befehl:
tar xzvf /laufwerk/pfad/fltk-1.x.x.tar.gz
Bei mir befindet sich die Datei "FLTK-1.1.6-source.tar.gz" im Verzeichnis E:\Downloads\Programmierung, deswegen müsste meine Eingabe
in MySYS so aussehen:
- Wenn das gelungen ist, ist das schwierigste schon vorbei. Nun wechselt man über den Befehl
cd fltk-1.x.x
in das eben frisch entstandene Unterverzeichnis von FLTK.
Über diese nacheinander ausgeführten Befehle
./configure
make
make install
wird die Installation von FLTK abgeschlossen.
- Nun muss man nur noch den Befehl "fluid" eingeben und das Programm wird gestartet.
Kurze Einführung in die Benutzung von FLUID |
- Der Fensteraufbau:
Die Anwendung besteht in erster Linie aus den zwei Fenstern und einem Vorschaufenster, welches man beim Start noch nicht sieht.
In dem größeren der beiden wird man später die Hierachie unseres
Programmes sehen. Dagegen stellt das kleinere nur die einzelnen einfügbaren Elemente wie "neues Fenster" oder
"Schaltfläche" bereit.
- Im Menü "File" finden sich die üblichen Einträge:
Abgesehen von "Write Code" und "Write Strings" müssten alles Befehle bekannt sein.
Write Code schreibt die aktuelle FLUID-Datei in C-Quellcode, so dass es später kompiliert werden kann.
Write Strings macht im Grunde nichts anderes als "Wirte Code", aber anstatt C-Dateien anzulegen wird der gesamte
Programmquelltext in eine einfache Textdatei geschrieben.
- Das Menü Edit:
Die meisten dieser Befehle sind klar:
Undo - letzte Aktion rückgängig
Cut - Ausschneiden
Copy - in Zwischenablage kopieren
Paste - aus Zwischenablage einfügen
Select All - alles markieren
Open - öffnet ein in der Hierachie markiertes Element
Earlier / Later - bewegt ein Element in der Hierachie nach oben bzw. unten
Group / Ungroup - ermöglich das Gruppieren von Elementen und das Aufheben von Gruppierungen
Overlay on/off -
Widget on/off - blendet das kleine Fenster mit den Symbolen für neu Elemente ein/aus
Ein wichtiger Punkt verbirgt sich im Menü "Edit" unter dem Eintrag "Project Settings".
Da später zum einfacheren Kompilieren Makefiles verwendet werden und diese in der Regel für CPP-Dateien ausgelegt sind, muss
man diese Dateiendung auch FLUID veraten. Und genau dies geschieht in diesem Menüpunkt, dazu ändern Sie einfach ".cxx" in ".cpp"
um.
- Im Menü New finden Sie all die Elemente, die man ins Programm einfügen kann. Dieses Menü werden Sie im Laufe des Tutorials noch
sehr oft benutzen.
Das Menü "Layout" beschäftigt sich mit der Ausrichtung von Objekten und die Menüeinträge sind selbstklärend.
Die beiden anderen Menüs sind nicht weiter relevant für dieses Tutorial.
Kompilieren und Ausführen von erstellten Programmen |
- Nach dem ein Programm in FLUID fertiggestellt wurde, kann man über das Menü File -> Write Code die CPP- und die
H-Datei schreiben lassen.
Danach wechselt man auf die Konsole in Linux bzw. MYSYS unter Windows.
Für gewöhnlich muss man nun einen Befehl dieser Form eingeben:
g++ -o programm.exe -I/usr/local/include programm.cpp -L/usr/local/lib -lfltk -mwindows -lole32 -luuid -lcomctl32 -lwsock32
Da dies aber auf Dauer ziemlich umständlich ist, sollte man auf sog. "Makefiles" zurückgreifen. Diese definieren die
Klasseneinbindung und ersparen einem das umständliche Eintippen eines solchen Befehls.
Wichtig dabei ist, dass die Makefiles im gleichen Verzeichnis liegen, wie die CPP-Datei und die Header-Datei. Auch muss zwischen
Windows und Linux unterschieden werden. Die hier veröffentlichten Makefiles basieren auf denen von Herrn Pönisch und sind für
dieses Tutorial ausreichend.
-
- Kompilieren unter Windows:
Das Makefile:
.SUFFIXES: .exe
.cpp.o:
g++ -Wall -c -I/usr/local/include $<
.o.exe:
g++ -o $@ $< -L/usr/local/lib -lfltk -mwindows -lcomctl32 -luuid -lole32 -lwsock32 -lfltk_images -lfltk_jpeg -lfltk_png -lfltk_z -lfltk
Nachdem Speichern in eine Textdatei muss die Datei noch ins Verzeichnis mit den späteren CPP-Dateien verschoben werden.
Alternativ "Speicher unter...": Makefile.win
Das Kompilieren:
In MYSYS (eventuell zweite Instanz öffnen) gibt man dazu einfach folgenden Befehl ein:
make -f Makefile.win Programm1.exe
Hinter "-f" steht der Name der Makefile-Datei, bei mir "Makefile.win". Der Dateiname leitet sich aus der CPP-Datei ab.
Wenn die geschriebene Datei "Programm1.cpp" heißt, muss der Eintrag am Ende "Programm1.exe" heißen.
Das Ausführen:
Zum Ausführen, falls es beim Übersetzen keine Fehler gab, erfolgt über den Befehl:
./Programm1.exe
- Kompilieren unter Linux:
Das Makefile:
.cpp:
g++ -Wall -c -I/usr/local/include $<
g++ -o $@ $< -lfltk -L/usr/X11R6/lib -lXft -lXext -lX11 -lm -lfltk_images -lfltk_jpeg -lfltk_png -lfltk_z -lfltk
Nachdem Speichern in eine Textdatei muss die Datei noch ins Verzeichnis mit den späteren CPP-Dateien verschoben werden.
Alternativ "Speicher unter...": Makefile.lnx
Das Kompilieren:
In der Linux-Konsole gibt man dazu einfach folgenden Befehl ein:
make -f Makefile.lnx Programm1
Hinter "-f" steht der Name der Makefile-Datei, bei mir "Makefile.lnx". Der Datei Name leitet sich aus der CPP-Datei ab.
Wenn die geschriebene Datei "Programm1.cpp" heißt, muss der Eintrag am Ende "Programm1" heißen.
Das Ausführen:
Zum Ausführen, falls es beim Übersetzen keine Fehler gab, erfolgt über den Befehl:
./Programm1
- Sollte es beim Kompilieren zu Fehlern kommen, steht dies ganz normal in der Konsole, leider lässt sich der Fehler hin- und
wieder schwer zuordnen.
Vor- und Nachteile von FLUID |
Vorteile:
- Anordnung der Elemente auf einer grafischen Oberfläche und kein "Pixel-Jonglieren". Schnelle Änderungen an den Größen
und Positionen möglich.
- Relativ sauberer Code und somit kann FLUID als Grundlage für grafische Oberflächen genutzt werden und der
C-Quelltext später von Hand weiterbeabreitet werden.
- Hierachischer Aufbau erleichtert Einstieg und Verständnis.
- Die gängisten Widgets sind vorhanden.
- Auch zum Erstellen von Klassen geeignet.
Nachteile:
- Aus C-Dateien lässt sich kein FLUID-Projekt erstellen, auch wenn der Quelltext mit Hilfe von FLUID erstellt wurde.
- Je größer die Verarbeitungslogik wird, desto unübersichtlicher wird die Programmierung und geht immer
schwieriger von der Hand.
- Fehlermeldungen beim Kompilieren sind schwer zuzuordnen.
- Einige wichtige Widgets sind leider nicht vorhanden, z.B. der Dialog zu "Datei öffnen".