diff --git a/programming/src/libs.md b/programming/src/libs.md index 7f0a3f2..7fe3e11 100644 --- a/programming/src/libs.md +++ b/programming/src/libs.md @@ -15,6 +15,27 @@ pkg-config --libs libpq ``` где `-lpq` - флаг компиляции при использовании библиотеки `pq` PostgreSQL. +### Идентификация библиотеки + +После того, как файл библиотеки скомпилирован, в каталоге `{instal_home/lib}` будет создан каталог с именем `pkgconfig`, который содержит файл `.pc` связанной библиотеки. Этот файл содержит соответствующую информацию о модификации библиотеки. Чтобы найти и прочитать, необходимо установить файл `.pc` в каталог `/usr/lib/pkgconfig` или добавить путь установки файла `.pc` в переменную среды `PKG_CONFIG_PATH`. Цель этого - позволить другим программам, которые зависят от этой библиотеки, автоматически связывать библиотеку с помощью `pkg-config`, избегая ошибок во время компиляции. + +#### Структура файла `.pc` + +```sh +prefix=/usr/local +exec_prefix=${prefix} +includedir=${prefix}/include +libdir=${exec_prefix}/lib + +Name: foo +Description: The foo library +Version: 1.0.0 +Cflags: -I${includedir}/foo +Libs: -L${libdir} -lfoo +``` + +[Подробнее](https://people.freedesktop.org/~dbn/pkg-config-guide.html). + ## ldd Команда `ldd` предназначена для вызова одноименной утилиты, осуществляющей вывод списка разделяемых библиотек, используемых исполняемыми файлами или разделяемыми библиотеками: