Fehler-Fahnder
configure-Fehlermeldungen entschlüsseln
Variablenwirtschaft
In letzter Zeit übernimmt immer öfter pkg-config die Arbeit bibliothekseigener Konfigurationsskripte wie sdl-config. Dabei handelt es sich um eine Hilfsanwendung für Programmierer, die herausfindet, wo eine Bibliothek liegt und welche Parameter nötig sind, um sie beim Übersetzen von Programmen zu nutzen.
Seine Informationen bezieht das pkg-config-Werkzeug aus einfachen Textdateien mit der Endung .pc, die normalerweise im Verzeichnis /usr/lib/pkconfig liegen. Sie enthalten unter anderem die installierte Version einer Bibliothek und die Pfade zu den Include-Dateien und den Bibliotheken (Abbildung 5).
Haben Sie eine Bibliothek, z. B. die libgphoto zur Ansteuerung von Digitalkameras, selbst kompiliert, landen die Dateien per Default unterhalb des Verzeichnisses /usr/local. Die Datei libgphoto2.pc kopiert der make install-Aufruf nach /usr/local/lib/pkgconfig. Übersetzen Sie danach eine Anwendung, die diese Bibliothek benötigt, konfrontiert Sie ./configure mit einer Fehlermeldung wie in Listing 4.
Listing 4
-Fehlermeldung
[andi@diabolos gphoto2-2.1.1]$ ./configure[…] checking for libgphoto2 >= 2.1.1… Package libgphoto2 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgphoto2.pc' to the PKG_CONFIG_PATH environment variable No package 'libgphoto2' found configure: error: Library requirements (libgphoto2 >= 2.1.1) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
Auf den richtigen Pfad gebracht
Das configure-Skript glaubt, libgphoto2 sei nicht in einer ausreichend hohen Version installiert (Library requirements (libgphoto2 >= 2.1.1) not met). Es kommt zu diesem Schluss, da es libgphoto2.pc nicht im pkg-config search path gefunden hat. Offenbar gibt es also einen Suchpfad (search path), in dem pkg-config nach den pc-Dateien fahndet.
configure gibt sich in Listing 4 auskunftsfreudig und verrät, dass Sie ihn über die Umgebungsvariable PKG_CONFIG_PATH erweitern können. Es sagt auch, welches Verzeichnis in den Suchpfad gehört, nämlich das, in dem libgphoto2.pc liegt ( Vielleicht sollten Sie das Verzeichnis, das libgphoto2.pc enthält, zur PKG_CONFIG_PATH-Umgebungsvariable hinzufügen).
Umgebungsvariablen setzen Sie, wie oben gezeigt, mit dem Befehl export. Der Aufruf
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
bildet den pkg-config-Suchpfad aus den Verzeichnissen /usr/local/lib/pkgconfig, wo libgphoto2.pc liegt, und /usr/lib/pkgconfig, dem Standardsuchpfad. Der muss nicht unbedingt in der Umgebungsvariable auftauchen, da pkg-config dort auf jeden Fall sucht.
Wer öfters Programme kompiliert, setzt den PKG_CONFIG_PATH dauerhaft über die Datei ~/.bash_profile. Stimmt er, findet das configure-Skript, das pkg-config aufruft, auch die selbst installierte libgphoto2 (Abbildung 6).



