pkg-config

pkg-config

Információ
Fejlesztette Tollef Fog Heen / freedesktop.org
Utolsó verzió 0,29,2 (2017. március 20)
Letét git: //anongit.freedesktop.org/pkg-config
Beírva VS
Operációs rendszer Unix típus
Környezet Unix típus
típus fejlesztési eszköz
Engedélyek GNU GPL
Weboldal pkg-config.freedesktop.org

A pkg-config olyan szoftver , amely egységes felületet biztosít a telepített könyvtárak lekérdezéséhez, ha a forráskód összeállításakor a könyvtárak egyikét használja.

Történelmi

Az első végrehajtásának eszközt fejlesztettek shell script által James Henstridge , és az első prototípusok készülnek2003. szeptember. 2005-ben a program teljesen újraírták C nyelven a Havoc Pennington . A bétákat ilyen módon terjesztik évente egyszer, kivéve 2009 - ig2011. május, az utolsó megvalósítás dátuma.

Technikai sajátosságok

Eredetileg GNU / Linux számára készült , de ma már különféle BSD rendszerek számára is elérhető , Microsoft Windows , Mac OS X és Solaris számára .

A pkg-config különféle információkat nyújt a telepített könyvtárakról. Ezek az információk a következőket tartalmazhatják:

Művelet

Amikor egy könyvtár van telepítve egy csomagkezelő , vagy közvetlenül összeállításakor a forráskódot , a .pc fájl van telepítve egy adott könyvtár biztosított erre a célra (a helyét ez a könyvtár rendszertől függ, és meg kell határozni a dokumentációt az pkg-config csomag ).

Ennek a fájlnak több bejegyzése van. Az ott található különböző klasszikus bejegyzések a könyvtárral való összeállításhoz szükséges paraméterek, a fejlécfájlok helye , a verzió és a leírás.

Íme egy példa a .pc kiterjesztésű fájlra a libpng szoftverkönyvtárhoz (amelynek GNU / Linux rendszeren az /usr/lib/pkgconfig/libpng.pc fájlban kell lennie ):

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

Ez a fájl azt mondja nekünk, hogy a könyvtár megtalálható az / usr / lib mappában , a fejlécek pedig a / usr / include / mappában , hogy neve libpng12 és 1.2.31 verziója . Megadja továbbá a könyvtárral való fordításhoz szükséges paramétereket.

Íme egy példa a pkg-config használatára fordításkor:

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

Előfordul, hogy a könyvtár forrásból történő telepítésekor nincs telepítve .pc kiterjesztésű fájl, és a felhasználónak létre kell hoznia ezt a fájlt, ha a pkg-config használatával szeretné lefordítani a könyvtárat.

Alternatív megoldás: a pkgconf projekt

A pkgconf egy program, amelyet a pkg-config projekttől függetlenül fejlesztettek ki 2011 nyarán annak cseréje érdekében.

A pkg-config szoftver minden megvalósításához hasonlóan ez az eszköz lehetővé teszi a fordítás és a link beállításainak megadását . A fordító opció egy olyan lehetőség, amelyet a fordítónak küldünk, hogy megmondja neki, hogy az alapértelmezett értékén kívül tegyen valamit. Ezeket általában paraméterként írják, és sok esetben a parancssorba írják, és argumentumként elküldik a fordítónak. Mindkét eszköz az autoconf által készített szkripteket használja a forráskód-konfiguráció automatizálásához. A szoftverkönyvtárak függőségeinek ellenőrzését nagyrészt az m4 makroprocesszor végzi, az autoconf PKG_CHECK_MODULES makrón keresztül .

A pkg-config-tól eltérően ez a program nem függ a GLib szoftverkönyvtártól , míg a pkg-config a GLib fordítását igényli , a Glib könyvtárnak a fordításhoz a pkg- configra is szükség van , amely körfüggőséget hoz létre. Szerencsére, mivel a pkg-config fejlesztői verzió integrálja a GLib saját példányát , amely lehetővé teszi a pkg-config függőség nélküli fordítását.

Megjegyzések és hivatkozások

  1. (in) forráskód pkgconf projekt  " a GitHub , 2012. június 5(megtekintés : 2012. június 5. )

Külső linkek