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. La première implémentation de cet outil a été développée en script shell par James Henstridge, et les premiers prototypes sont réalisés en . En 2005, le programme est entièrement réécrit en langage C par Havoc Pennington. Des versions bêta sont ainsi distribuées une fois par an, excepté en 2009, jusqu'en , date de la dernière réalisation. Il a été conçu à l'origine pour GNU/Linux, mais est aujourd'hui également disponible pour divers systèmes BSD, 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 Quand une bibliothèque est installée à partir d'un gestionnaire de paquets ou directement par la compilation du code source, 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 documentation du paquet 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 d'extension .pc pour la bibliothèque logicielle libpng (qui sous GNU/Linux devrait se trouver à 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{includedir} Ce fichier nous indique ainsi que la bibliothèque peut être trouvée dans le dossier /usr/lib et les en-têtes dans le dossier /usr/include/, que son nom est libpng12 et sa version 1.