pkg-config
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.
Vývojář | Tollef Fog Heen / freedesktop.org |
---|---|
První vydání | 2000 |
Aktuální verze | 0.29.2 (20. března 2017) |
Operační systém | unixový |
Vyvíjeno v | C |
Typ softwaru | Programátorský nástroj |
Licence | GNU GPL |
Web | pkgconfig.freedesktop.org |
Některá data mohou pocházet z datové položky. |
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.