pkg-конфигурация
Оригинальный автор(ы) | Джеймс Хенстридж; переписано Хэвоком Пеннингтоном |
---|---|
Разработчик(и) | Толлеф Фог Хин / freedesktop.org |
Первоначальный выпуск | 2000 | или ранее
Стабильная версия | 0.29.2
/ 20 марта 2017 г |
Репозиторий | gitlab |
Написано в | С |
Операционная система | Unix-подобный |
Тип | Инструмент программирования |
Лицензия | GNU GPL |
Веб-сайт | www |
pkg-config — это компьютерная программа, которая определяет и поддерживает единый интерфейс для запроса установленных библиотек с целью компиляции зависящего от них программного обеспечения. Это позволяет программистам и сценариям установки работать без явного знания подробной информации о пути к библиотеке. pkg-config изначально был разработан для Linux , но теперь он также доступен для BSD , Microsoft Windows , macOS и Solaris .
Он выводит различную информацию об установленных библиотеках. Эта информация может включать в себя:
- Параметры (флаги) для C или C++ компилятора
- Параметры (флаги) для компоновщика
- Версия рассматриваемого пакета
Первая реализация была написана в оболочке. [1] Позже он был переписан на C с использованием библиотеки GLib . [2]
Краткое содержание
[ редактировать ]Когда библиотека установлена (автоматически с помощью RPM , deb или другой двоичной системы упаковки или путем компиляции из исходного кода), .pc
файл должен быть включен и помещен в каталог с другими .pc
файлы (точный каталог зависит от системы и указан на странице руководства pkg-config). Этот файл имеет несколько записей.
Эти записи обычно содержат список зависимых библиотек, которые также необходимо скомпилировать программам, использующим пакет. Записи также обычно включают расположение файлов заголовков , информацию о версии и описание.
Вот пример .pc
файл для 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
Этот файл демонстрирует, как libpng
сообщает, что его библиотеки можно найти в /usr/local/lib
и его заголовки в /usr/local/include
, что имя библиотеки libpng
, и что это версия 1.2.8. Он также предоставляет дополнительные флаги компоновщика, необходимые для компиляции кода, использующего эту библиотеку.
Вот пример использования pkg-config при компиляции:
$ gcc -o test test.c $(pkg-config --libs --cflags libpng)
pkg-config может использоваться программным обеспечением для автоматизации сборки, таким как CMake .
Альтернативные реализации
[ редактировать ]- u-config – минимальная реализация с первоклассной поддержкой Windows
- PkgConfig — замена pkg-config только для Pure - Perl Core.
- Ruby-gnome/pkg-config — реализация pkg-config в Ruby.
Ссылки
[ редактировать ]- ^ Хэвок Пеннингтон (4 июня 2000 г.). «Re: сценарии *-config» . Проверено 22 января 2020 г.
- ^ Хэвок Пеннингтон (23 июля 2000 г.). «pkg-конфигурация» . Проверено 22 января 2020 г.
- ^ Перейти обратно: а б с д Обнаружен при распространении pkgconf , но не при распространении pkg-config при релогии.
- ^ Перейти обратно: а б с д Замена pkg-config на pkgconf в [email protected]
- ^ по умолчанию вместо pkg-config в Alpine Linux , [3] Арч Линукс , [4] ЦентОС 8+, [3] Федора , [4] FreeBSD , [4] Магия 7+, [3] Манджаро [3] и NetBSD [4]
Внешние ссылки
[ редактировать ]- pkg-config дома на freedesktop.org
- Linux пользователя по командам Руководство –
- OpenBSD по общим командам Руководство –