pkg-config

pkg-config
VývojářTollef Fog Heen / freedesktop.org
První vydání2000
Aktuální verze0.29.2 (20. března 2017)
Operační systémunixový
Vyvíjeno vC
Typ softwaruProgramátorský nástroj
LicenceGNU GPL
Webpkgconfig.freedesktop.org
Některá data mohou pocházet z datové položky.

pkg-config je počítačový program, který poskytuje jednotné rozhraní pro získání informací o knihovnách nainstalovaných v systému pro účely překladu softwaru ze zdrojových kódů. Umožňuje, aby programátoři a instalační skripty mohli pracovat bez explicitních znalostí, kde jsou umístěny jednotlivé knihovny. pkg-config byl původně navržený pro Linux, ale je dostupný i pro různé varianty BSD, Microsoft Windows, Mac OS X a Solaris.

Příkaz vypisuje informace o nainstalovaných knihovnách, např.:

První implementace byla napsaná v shellu, později byl program přepsán do jazyka C s použitím knihovny GLib.

Použití

Při instalaci knihovny (ať automatickém pomocí RPM, deb nebo jiného binárního balíčkovacího systému, nebo překladem ze zdrojových textů), je do vytvořen soubor .pc a nainstalován do adresáře s dalšími .pc soubory (konkrétní adresář závisí na systému a je uveden v manuálové stránce pkg-config). Soubor obsahuje několik položek.

Jednotlivé položky obsahují seznam knihoven, které programy používající balíček potřebují při překladu, umístění hlavičkových souborů, informace o verzi a popis.

Příklad .pc souboru pro libpng:

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include
 
Name: libpng
Description: Loads and saves PNG files
Version: 1.2.8
Libs: -L${libdir} -lpng12 -lz
Cflags: -I${includedir}/libpng12

Tento soubor ukazuje, jak libpng informuje, že se jeho knihovny nacházejí v /usr/local/lib a hlavičkové soubory v /usr/local/include, že jméno knihovny je libpng, a verze 1.2.8. Také uvádí příznaky pro linker potřebné při sestavování programů, které používají tuto knihovnu.

Příklad použití pkg-config při překladu:

$ gcc -o test test.c $(pkg-config --libs --cflags libpng)

Odkazy

Reference

V tomto článku byl použit překlad textu z článku pkg-config na anglické Wikipedii.

Externí odkazy