Download GIMP-Handbuch

Transcript
Ka p i t e l 4 0
P l u g I n s k o m p i l i e re n
halten. Wie wird so etwas kompiliert? Falls es sich bei der zusätzlichen Datei
um eine Header-Datei (namens plugin.h) handelt, können Sie wie bisher vorgehen. Die Header-Datei ist lediglich eine Datei, in der Funktionen festgelegt
werden sowie, wie Sie diese Funktionen aufrufen. Wir müssen nur in diese Dateien (oder die Header-Datei) schauen, um herauszufinden, welche Verzeichnisse und Bibliotheken benötigt werden.
Was aber nun, wenn das PlugIn aus mehreren Dateien aufgebaut ist? (z. B.
pluginmain.c, pluginpart1.c, pluginpart2.c usw.) Wir müssen dann das Kompilie-
ren ein wenig anders angehen. Zuerst muss jeder Teil separat kompiliert werden, anschließend werden sie zu einem ausführbaren PlugIn kompiliert (oder
besser: gelinkt).
Wir müssen aus jedem Teil eine Object-Datei machen. Diese Object-Dateien
werden dann gelinkt und bilden so das ausführbare PlugIn. Hier kommt ein
Beispiel:
gcc -c pluginmain.c -I/usr/local/include
gcc -c pluginpart1.c -I/usr/local/include
gcc -c pluginpart2.c -I/usr/local/include
gcc -o PlugIn pluginmain.o pluginpart1.o pluginpart2.o -L/usr/local/lib -lgtk lgimp -lgimpui -lmpeg
Mit den ersten drei Zeilen erstellen wir die Object-Dateien. Dazu fügen wir das
-c-Flag hinzu. Wenn wir Object-Dateien erzeugen, müssen wir uns keine Sorgen um Bibliotheken machen, wir müssen nur sicherstellen, dass der Compiler
die include-Dateien finden. Deshalb müssen wir beim Erzeugen der Object-Dateien nur das -I-Flag verwenden.
Mit der letzten Zeile erstellen wir das endgültige PlugIn. Hier müssen wir uns
keine Gedanken um die Include-Dateien machen. Jetzt ist es nur wichtig, dass
die benötigten Bibliotheken gelinkt werden. Stellen Sie sich das so vor: Wenn
Sie Object-Dateien erzeugen, fügen Sie Beschreibungen von Bibliotheksfunktionsaufrufen hinzu, indem Sie die Header-Dateien hinzufügen. Die PlugIn-Object-Datei verwendet sie einfach, weil sie annimmt, dass sie später mit diesen
Bibliotheken verbunden wird. Wir können natürlich die Befehle gimptool -cflags und gimptool --libs verwenden, um Verzeichnisse und Bibliotheken hinzuzufügen.
Wir empfehlen Ihnen, das gimptool zu verwenden, weil damit weniger Fehler
auftreten und Sie außerdem dort weniger tippen müssen.
In der letzten Zeile passiert Folgendes: Hier sagen wir dem Compiler, dass das
fertige Ergebnis ein PlugIn sein soll. Dazu fügen wir -o PlugIn hinzu sowie alle
Object-Dateien, die wir in den ersten drei Zeilen erstellt haben. Weil wir in den
Object-Dateien viele Bibliotheksfunktionen verwendet haben, müssen wir
noch die Bibliotheken hinzufügen, damit diese Funktionen im PlugIn verfüg-
600