21. JANUAR 2019

Menu

Mehrere Versionen einer Library im Linux-System

Konkret ging es darum das ein Package (rawtherapee) unter Linux kompiliert werden sollte. cmake brach ohne aussagekräftiger Fehlermeldungen einfach.

Der Fehler deutete aber auf GTK3 hin. Folgender Befehl wies auf ein Problem hin:

aw@gnome:~$ pkg-config --libs gtk+-3.0
Package 'gdk-3.0' requires 'cairo >= 1.14.0' but version of cairo is 1.13.1

Es gab unter /usr/local ebenfalls eine Cairo-Library und das PKGCONFIG-File unterhalb von /usr/local/lib/pkgconfig wurde primär verwendet. Nachdem dieses bereinigt wurde (/usr/local/lib/pkgconfig wurde testweise verschoben) kam Folgendes:

aw@gnome:~$ pkg-config --libs gtk+-3.0
-lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0

Rawtherapee hat nun auch die korrekte GTK-Version gefunden!

Hinweis: Im obigen Falle wurde /usr/local/lib/pkgconfig verschoben. Möglicherweise wäre dies auch die beste Möglichkeit, jedoch kann man nicht verhindern das bei zukünftigen Installationen dort nicht wieder Dateien landen. Besser ist es wenn man

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig

eben auf die produktive PKG-CONFIG-Umgebung setzt. Die Umgebungsvariable hat höhere Priorität als die internen Pfade von PKG-CONFIG.

Die eigenen Projekte (welche ja primär Libraries unter /usr/local/lib verwenden) verwenden sowieso kein PKG-CONFIG weshalb dies nicht relevant ist. Allerdings könnte sich das eventuell zukünftig ändern wenn cmake oder autobuild verwendet wird.



Keywords: cmake, library, pkg-config, pkgconfig
Dokumenten-ID: kb/2c3d62de-0723-4a14-8f17-b916426f1327



Startseite - Keywords - Sitemap - Impressum