pkg-config

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
pkg-config
Тип Інструмент розробки
Автори James Henstridge; Tim Janik; Havoc Pennington; Scott James Remnant
Розробник Tollef Fog Heen
Перший випуск 15 вересня 2003; 20 років тому (2003-09-15)
Стабільний випуск 0.29.2 (20 березня 2017; 7 років тому (2017-03-20))
Версії 0.29.2 (20 березня 2017)[1]
Операційна система Unix-подібні; Windows; macOS
Мова програмування C
Ліцензія GNU GPL
Розширення файлу .pc
Репозиторій anongit.freedesktop.org/pkg-config
Вебсайт freedesktop.org/wiki/Software/pkg-config/

pkg-config — допоміжний інструмент для компіляції програмного забезпечення. Зберігає метадані встановлених бібліотек у файлах з розширенням .pс , надаючи уніфікований спосіб їх інтеграції при складанні програми[2]. Початково був створений для Linux, але тепер доступний на Windows та macOS.

Історія[ред. | ред. код]

Перший доступний реліз датується 2003 роком[3]. Спершу був написаний James Henstridge мовою shell для Linux . Згодом Havoc Pennington переробив pkg-config на мові С. Надалі проект отримав розповсюдження на інші платформи.

Приклади використання[ред. | ред. код]

Зазвичай при встановлені бібліотеки через менеджер пакунків(dnf, apt тощо) автоматично створюється відповідний .pc файл. Він містить в собі назву пакунку, версію, стислий опис та потрібні директорії для його складання, в тому числі директорії залежностей. Існує перелік директорій, в яких ці файли мають зберігатися, вони описані офіційною документацією pkg-config[2].


Приклад .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

Приклад складання програми з gcc та pkg-config:

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

CMake[ред. | ред. код]

pkg-config також підтримується та використовується в сценаріях складання CMake.

Джерела[ред. | ред. код]

  1. Index of /releases
  2. а б pkg-config(1) - Linux man page.
  3. pkg-config. www.freedesktop.org. Процитовано 2 січня 2024.