Pkg-config

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher
pkg-config
Importez le logo de ce logiciel
Développeur Tollef Fog Heen / freedesktop.org
Écrit en C
Environnements de type Unix
Type outil de développement
Licences GNU GPL
Site web pkg-config.freedesktop.org

pkg-config est un logiciel qui fournit une interface unifiée pour interroger les bibliothèques installées lors de la compilation de code source qui utilise une de ces bibliothèques.

Il a été conçu à l'origine pour Linux, mais est aujourd'hui également disponible pour divers BSDs, pour Microsoft Windows, Mac OS X et Solaris.

pkg-config fournit diverses informations au sujet des bibliothèques installées. Ces informations peuvent comprendre :

  • des paramètres pour un compilateur C ou C++
  • des paramètres pour l'éditeur de liens
  • la version de la bibliothèque en question
  • indique la présence des bibliothèques installées ou pas avec un intervalle de version requis

[modifier] Fonctionnement

Quand une bibliothèque est installée (à partir d'un RPM, d'un deb, ou d'un autre système d'empaquetage de binaire), un fichier .pc est installé dans un certain répertoire prévu à cet effet (l'emplacement de ce répertoire dépend du système et devrait être indiqué dans la page de man de pkg-config).

Ce fichier comprend plusieurs entrées. Les différentes entrées classiques que l'on peut y trouver sont les paramètres nécessaires pour compiler avec la bibliothèque, l'emplacement des fichiers d'en-tête, la version et une description.

Voici un exemple de fichier .pc pour la libpng (qui sous Linux devrait se trouver a l'emplacement /usr/lib/pkgconfig/libpng.pc) :

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}

Ce fichier nous indique ainsi que la bibliothèque peut être trouvée dans /usr/lib et les en-têtes dans /usr/include/libpng12, que son nom est libpng12 et sa version 1.2.31. Il fournit aussi les paramètres nécessaire pour compiler avec cette bibliothèque.

Voici un exemple d'utilisation de pkg-config lors de la compilation :

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

Parfois lors de l'installation d'une bibliothèque à partir de ses sources il n'y a pas de fichier .pc d'installé et l'utilisateur devra créer ce fichier s'il veut pouvoir utiliser pkg-config pour compiler avec cette bibliothèque.

[modifier] Liens externes

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues