Jump to content

pkg-конфигурация

pkg-конфигурация
Оригинальный автор(ы) Джеймс Хенстридж; переписано Хэвоком Пеннингтоном
Разработчик(и) Толлеф Фог Хин / freedesktop.org
Первоначальный выпуск 2000 ; 24 года назад ( 2000 ) или ранее
Стабильная версия
0.29.2 / 20 марта 2017 г .; 7 лет назад ( 20.03.2017 )
Репозиторий gitlab .freedesktop .org /pkg-конфигурация /pkg-конфигурация
Написано в С
Операционная система Unix-подобный
Тип Инструмент программирования
Лицензия GNU GPL
Веб-сайт www .freedesktop .org /неделя /Программное обеспечение /pkg-конфигурация /

pkg-config — это компьютерная программа, которая определяет и поддерживает единый интерфейс для запроса установленных библиотек с целью компиляции зависящего от них программного обеспечения. Это позволяет программистам и сценариям установки работать без явного знания подробной информации о пути к библиотеке. pkg-config изначально был разработан для Linux , но теперь он также доступен для BSD , Microsoft Windows , macOS и Solaris .

Он выводит различную информацию об установленных библиотеках. Эта информация может включать в себя:

Первая реализация была написана в оболочке. [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 .

Альтернативные реализации

[ редактировать ]
  1. ^ Хэвок Пеннингтон (4 июня 2000 г.). «Re: сценарии *-config» . Проверено 22 января 2020 г.
  2. ^ Хэвок Пеннингтон (23 июля 2000 г.). «pkg-конфигурация» . Проверено 22 января 2020 г.
  3. ^ Перейти обратно: а б с д Обнаружен при распространении pkgconf , но не при распространении pkg-config при релогии.
  4. ^ Перейти обратно: а б с д Замена pkg-config на pkgconf в [email protected]
  5. ^ по умолчанию вместо pkg-config в Alpine Linux , [3] Арч Линукс , [4] ЦентОС 8+, [3] Федора , [4] FreeBSD , [4] Магия 7+, [3] Манджаро [3] и NetBSD [4]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 187196dcde6d19c0834d2667a1f31472__1712006520
URL1:https://arc.ask3.ru/arc/aa/18/72/187196dcde6d19c0834d2667a1f31472.html
Заголовок, (Title) документа по адресу, URL1:
pkg-config - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)