Где определяются цели pkg-config?

Когда я выполняю команду

pkg-config --variable pc_path pkg-config

На выходе

/ usr / lib64 / pkgconfig: / usr / share / pkgconfig

Однако в моей системе есть еще два pkgconfig каталога: /usr/lib/pkgconfig и /usr/local/lib/pkgconfig

Если я попробую

echo $PKG_CONFIG_PATH

результат

Неопределенная переменная

Я тоже пытался

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 

но ответ был

экспорт: команда не найдена.

Теперь я несколько раз собирал Gstreamer, и он помещает файлы метаданных (gstreamer-1.0.pc) в другую папку pkgconfig (usr / local / lib / pkgconfig). (Мне удалось решить эту проблему, изменив файл конфигурации, изменив lib на lib64 в определении libdir.) Но я бы предпочел разобраться в своей системе, а не пробовать обходные пути.

Итак, два вопроса: откуда программа pkg-config берет свои целевые каталоги?

И почему и как файлы метаданных помещаются в каталог, который явно не указан программой pkg-config?


person jackson80    schedule 10.02.2017    source источник
comment
Спасибо @Grisha Levit за редактирование моего плохо заданного вопроса. Ни один из приведенных ответов на самом деле не отвечает на два моих вопроса, хотя я ценю усилия, направленные на то, чтобы найти решение.   -  person jackson80    schedule 17.02.2017


Ответы (2)


Поскольку команда не работает, потому что эта переменная отсутствует, сначала проверьте, есть ли переменная или нет, для этого выполните команду env root @ localhost: / etc / apt # env, если путь не объявлен в env, тогда сделайте что-то вроде

root @ localhost: / etc / apt # PKG_CONFIG_PATH = / usr / local / lib / pkgconfig root @ localhost: / etc / apt # export PKG_CONFIG_PATH root @ localhost: / etc / apt # echo $ PKG_CONFIG_PATH / usr / local / lib / pkgconfig корень @ локальный: / etc / apt # env

Надеюсь, это сработает для вас, если вам нужна дополнительная помощь, отправьте запросы с ошибкой

person Mausam Sinha    schedule 11.02.2017
comment
Я обнаружил, что мой экспорт команд не работает, потому что я использовал tsch. Если я перейду на bash, я смогу использовать экспорт. - person jackson80; 31.03.2017

Когда вы устанавливаете пакет foo, пакет foo имеет соответствующий файл foo.pc, который устанавливается в каталогах pkgconfig по умолчанию. Если пакет помещает свой файл * .pc в произвольное расположение, как вы уже знаете, вы должны соответствующим образом установить свой PKG_CONFIG_PATH. Таким образом, pkg-config будет искать не только в каталогах по умолчанию, но и в пользовательском пути, который вы указали в PKG_CONFIG_PATH. Это руководство хорошо объясняет:

руководство по pkg-config

person Salil    schedule 11.02.2017