Pkg config path linux

Переменная окружения PKG_CONFIG_PATH

Рассмотрите возможность настройки переменной среды PKG_CONFIG_PATH, если вы установили программное обеспечение с нестандартным префиксом. Что это значит?

9 ответов

PKG_CONFIG_PATH переменная среды, которая указывает дополнительные пути в который pkg-config будет искать его .pc файлы.

Эта переменная используется для увеличения пути поиска pkg-конфигурации по умолчанию. В типичной системе Unix это будет искать в каталогах /usr/lib/pkgconfig и /usr/share/pkgconfig . Это будет обычно покрывать установленные модули системы. Однако некоторые локальные модули могут быть установлены в другом префиксе такой как /usr/local . В этом случае необходимо предварительно ожидать путь поиска так, чтобы pkg-конфигурация могла определить местоположение .pc файлов.

pkg-config программа используется для получения информации об установленных библиотеках в системе. Основное использование pkg-config должен предоставить необходимую подробную информацию для компиляции и соединения программы к библиотеке. Эти метаданные хранятся в pkg-файлах-конфигурации. Эти файлы имеют суффикс .pc и находятся в определенных местоположениях, известных инструменту pkg-конфигурации.

Проверять PKG_CONFIG_PATH использование значения эта команда:

Установить PKG_CONFIG_PATH использование значения:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 

Первый ответ недостаточно технически ясен. На странице руководства (откройте терминал, введите man pkg-config ):

pkg-config извлекает информацию о пакетах из специальных файлов метаданных. Эти файлы названы в честь пакета и имеют расширение .pc . В большинстве систем pkg-config ищет эти файлы в /usr/lib/pkgconfig , /usr/share/pkgconfig , /usr/local/lib/pkgconfig и /usr/local/share/pkgconfig . Кроме того, он будет выглядеть в списке каталогов, разделенных двоеточиями (в Windows, разделенных точкой с запятой), указанных в переменной среды PKG_CONFIG_PATH .

Итак, программа pkg-config отсутствует в каталоге PKG_CONFIG_PATH ; однако, если вы устанавливаете библиотеку, чтобы информация, используемая в сценарии automake , была доступна, она должна находиться в каталоге, о котором знает pkg-config .

Я посмотрел man-страницу моей 64-битной системы и немного запутался. В одной строке сказано:

Читайте также:  Ошибка при установке alt linux

pkg-config извлекает информацию о пакетах из специальных файлов метаданных. Эти файлы названы в честь пакета с расширением .pc. По умолчанию pkg-config ищет в этих файлах префикс директории / lib / pkgconfig; он также будет смотреть в списке каталогов, разделенных двоеточиями (в Windows, разделенных точкой с запятой), указанных переменной среды PKG_CONFIG_PATH.

Я предполагал, что это всегда выглядит в каталогах lib / pkgconfig. Оказывается это сами каталоги. В моем случае я пытался скомпилировать учебник Hello World GTK. Я нахожу нужный файл, например

Среди результатов:

/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-3.0.pc

Наконец был сделать экспорт.

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/ 

Я пытался установить последнюю версию axel , и я запустил ./configure , и я получил это:

configure: error: Package requirements (openssl) were not met: No package 'openssl' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SSL_CFLAGS and SSL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. 
Package openssl was not found in the pkg-config search path. Perhaps you should add the directory containing `openssl.pc' to the PKG_CONFIG_PATH environment variable No package 'openssl' found 

Как очевидно, я установил openssl ( sudo apt-get install openssl ) Но на приведенном выше выводе, как вы можете видеть, говорится: «Пакет« openssl не найден ». Итак, чтобы убедиться, что я сделал:

find / -type f -name "*.pc" |& grep -iv permission | grep openssl 

Оказывается, мне нужен какой-то другой пакет, так что немного погуглив, и я обнаружил, что мне нужно установить этот пакет:

sudo apt-get install libssl-dev 

И все это не имело никакого отношения к изменению переменной env пути pkg-config.

Мне кажется, что большинство ответов содержат слишком много информации, чем необходимо.

Программное обеспечение, которое устанавливается, может (и обычно делает) полагаться на некоторые библиотеки и / или заголовки, и Система использует pkg-config для их поиска.

Читайте также:  Linux установка драйвера через терминал

Сказал так, pkg-config ищет эти файлы в предопределенных (по умолчанию) системных каталогах. Эти папки являются «префиксом». Например. ожидается, что библиотека с префиксом /usr/local будет иметь заголовки в /usr/local/include , а сама библиотека будет в /usr/local/lib . pkg-config , однако, ищет библиотеки также в каталоге, указанном в переменной среды PKG_CONFIG_PATH .

Затем, если вы устанавливаете программное обеспечение вне списка папок по умолчанию, вам нужно было «настроить» список, а именно добавить свои каталоги в PKG_CONFIG_PATH

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:

Для получения дополнительной информации вы можете посмотреть здесь [ 115] и здесь

Вы пытаетесь создать часть программного обеспечения, скажем, Widget. Виджет опирается на другую библиотеку, libcog ради аргумента. Процесс сборки виджета (возможно, скрипт configure) использует pkg-config, чтобы определить, как использовать libcog. pkg-config ничего не знает о libcog.

Если libcog не установлен, это ваша проблема. Есть большая вероятность, что стандартная установка libcog решит проблему. В зависимости от вашей системы вам может потребоваться установить дополнительную версию пакета для разработчиков; он часто имеет «-devel» или «-dev» в конце, поэтому если вы устанавливаете «libcog», вам также может понадобиться установить «libcog-devel».

Если libcog установлен, он, вероятно, установлен не так, как его может найти pkg-config. Вероятно, где-то в вашей системе есть файл libcog.pc. Ради аргумента, это в /opt/cog/lib/pkgconfig/libcog.pc. В этом случае вы можете сообщить об этом pkg-config, установив PKG_CONFIG_PATH в каталог, содержащий libcog.pc. Таким образом, в оболочке Bourne или аналогичной, что-то вроде

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/cog/lib/pkgconfig/ 

Как только это будет сделано, мы надеемся, что повторный запуск команды, которая не удалась, сработает.

Если установлен libcog, включая библиотеки и заголовочные файлы, и у вас нет файла libcog.pc, дела идут плохо. Предположительно стандартная установка libcog включает в себя информацию, иначе Widget не будет полагаться на нее. Я бы сначала расследовал переустановку libcog. Можно вручную создать файл libcog.pc, но получить его правильно сложно и очень специфично для конкретной библиотеки.

Читайте также:  Can linux read exe files

Чтобы узнать, где pkg-config (версия 0.24 или более поздняя) ищет установленные библиотеки по умолчанию, используйте следующую команду:

pkg-config --variable pc_path pkg-config 

Чтобы изменить этот путь, установите переменную среды PKG_CONFIG_PATH . Man-файл сообщает PKG_CONFIG_PATH :

Разделенный двоеточиями (в Windows, разделенный точкой с запятой) список каталогов для поиска файлов .pc. Каталог по умолчанию всегда будет искать после поиска пути; по умолчанию это libdir / pkgconfig: datadir / pkgconfig, где libdir — это libdir, где pkg-config и datadir — это каталог данных, где был установлен pkg-config.

Это означает, что вы пытаетесь создать что-то из исходного кода, и он не может найти все необходимые ему зависимости. Скрипт pkg-config , который он использует для поиска файлов разработки для этих библиотек, выводит это сообщение.

, следуют клон мерзавца librdkafka

  1. установки https://github.com/edenhill/librdkafka.git
  2. cd librdkafka
  3. ./configure — префикс/usr
  4. делает
  5. , sudo делают установку

Теперь, можно использовать, идут, установка / идет выполненная, идут, создают

Другие вопросы по тегам:

Похожие вопросы:

  • Когда я открываю терминал перед любыми командами, я вижу “PKG_CONFIG: команда, не найденная” — 8 January 2017 21:08
  • Ошибка при запуске ./configure в источнике Ubiquity — 21 January 2011 00:12
  • Почему & ldquo; pkg-config & rdquo; печатать только пробел с помощью & ldquo; — cflags & rdquo; вариант? — 22 July 2012 14:27
  • Проблема с получением флагов libconfig — 31 July 2017 13:34
  • CMAKE НЕ Мог найти PkgConfig (отсутствующий: PKG_CONFIG_EXECUTABLE) — 8 November 2019 14:42
  • Зависимости vtg-plugin не выполнялись — 18 June 2011 17:48
  • смелый плагин бесконечности — 28 December 2013 21:30

Источник

Оцените статью
Adblock
detector