pkg-config es un programa informático que define y admite una interfaz unificada para consultar las bibliotecas instaladas con el fin de compilar el software que depende de ellas. Permite que los programadores y los scripts de instalación funcionen sin un conocimiento explícito de la información detallada de la ruta de la biblioteca. pkg-config se diseñó originalmente para Linux , pero ahora también está disponible para BSD , Microsoft Windows , macOS y Solaris .
Autor (es) original (es) | James Henstridge; reescrito por Havoc Pennington |
---|---|
Desarrollador (es) | Tollef Fog Heen / freedesktop.org |
Versión inicial | 2000 | o antes
Lanzamiento estable | 0.29.2 / 20 de marzo de 2017 |
Repositorio | |
Escrito en | C |
Sistema operativo | Tipo Unix |
Tipo | Herramienta de programación |
Licencia | GNU GPL |
Sitio web | www |
Genera información diversa sobre las bibliotecas instaladas. Esta información puede incluir:
- Parámetros (banderas) para el compilador C o C ++
- Parámetros (banderas) para enlazador
- Versión del paquete en cuestión
La primera implementación se escribió en shell. [1] Más tarde, se reescribió en C utilizando la biblioteca GLib . [2]
Sinopsis
Cuando se instala una biblioteca (automáticamente mediante el uso de un RPM , deb u otro sistema de empaquetado binario o compilando desde la fuente), se .pc
debe incluir un archivo y colocarlo en un directorio con otros .pc
archivos (el directorio exacto depende de la system y descrito en la página de manual de pkg-config). Este archivo tiene varias entradas.
Estas entradas normalmente contienen una lista de bibliotecas dependientes que los programas que utilizan el paquete también necesitan compilar. Las entradas también suelen incluir la ubicación de los archivos de encabezado , información de la versión y una descripción.
Aquí hay un .pc
archivo de ejemplo para libpng :
prefijo = / usr / local exec_prefix = $ { prefix } libdir = $ { exec_prefix } / lib includedir = $ { exec_prefix } / include Nombre : libpng Descripción : Carga y guarda archivos PNG Versión : 1.2.8 Libs : -L $ { libdir } -lpng12 -lz Cflags : -I $ { includedir } / libpng12
Este archivo demuestra cómo libpng
informa que se pueden encontrar sus bibliotecas /usr/local/lib
y sus encabezados /usr/local/include
, que el nombre de la biblioteca es libpng
y que la versión es 1.2.8. También proporciona los indicadores adicionales del vinculador que se necesitan para compilar el código que utiliza esta biblioteca.
Aquí hay un ejemplo del uso de pkg-config durante la compilación:
$ gcc -o prueba prueba.c $ ( pkg-config --libs --cflags libpng )
pkg-config puede ser utilizado por software de automatización de compilación como CMake .
Implementaciones alternativas
- PkgConfig - Reemplazo de Pure- Perl Core-Only para pkg-config
- ruby-gnome / pkg-config - Implementación de pkg-config en Ruby
Referencias
- ^ Havoc Pennington (4 de junio de 2000). "Re: los scripts * -config" . Consultado el 22 de enero de 2020 .
- ^ Havoc Pennington (23 de julio de 2000). "pkg-config" . Consultado el 22 de enero de 2020 .
- ^ a b c d Encontrado en la propagación de pkgconf pero no en la propagación de pkg-config en repology
- ^ a b c d Reemplazo de pkg-config con pkgconf en [email protected]
- ^ predeterminado, en lugar de pkg-config, en Alpine Linux , [3] Arch Linux , [4] CentOS 8+, [3] Fedora , [4] FreeBSD , [4] Mageia 7+, [3] Manjaro [3] y NetBSD [4]
enlaces externos
- pkg-config home en freedesktop.org
- - Manual de comandos de usuario de Linux
- - Manual de comandos generales de OpenBSD