Как pkg-config решает, какой путь поиска добавить по умолчанию?

Я пытаюсь запустить pkg-config на своем 64-битном элементе (ubuntu 14.04) из приложения .net gui, и он говорит, что не находит мои пакеты, которые были найдены, когда я запускаю точную команду из терминала.

Для справки, вот команда:

pkg-config --cflags --libs  glib-2.0 gobject-2.0

Используя PKG_CONFIG_DEBUG_SPEW, мне удалось получить подробную информацию об отладке для pkg-config, и похоже, что в этих двух случаях он инициализируется по-разному.

Инициализация в приложении .net gui:

Adding directory '/usr/share/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/lib/pkgconfig' from PKG_CONFIG_PATH

Инициализация в терминале:

Adding directory '/usr/local/lib/x86_64-linux-gnu/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/local/lib/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/local/share/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/lib/x86_64-linux-gnu/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/lib/pkgconfig' from PKG_CONFIG_PATH
Adding directory '/usr/share/pkgconfig' from PKG_CONFIG_PATH

Конечно, мои библиотеки определены в отсутствующем каталоге «/usr/lib/x86_64-linux-gnu/pkgconfig», который не добавлен в приложение .net gui.

Почему две инициализации различаются?

Как указать pkg-config инициализировать то же самое, что и в терминале?

Примечание. Я знаю, что могу установить PKG_CONFIG_PATH перед вызовом pkg-config, но я бы предпочел более простое решение, если оно доступно.


person Name is carl    schedule 24.04.2015    source источник


Ответы (1)


Примечание. Я знаю, что могу установить PKG_CONFIG_PATH перед вызовом pkg-config, но я бы предпочел более простое решение, если оно доступно.

Нет, это как сделать. Тем не менее, и /usr/share/pkgconfig, и /usr/lib/pkgconfig уже находятся в вашем пути поиска, поэтому я не уверен, чего вы надеетесь достичь.

person nemequ    schedule 25.04.2015
comment
Я не понимаю, зачем мне нужно устанавливать PKG_CONFIG_PATH при вызове pkg-config из моих .net-приложений, в то время как все работает нормально, запущенное из терминала. - person Name is carl; 26.04.2015
comment
Как я уже сказал, pkg-config при вызове из вашего приложения уже выполняет поиск по обоим путям, которые он ищет в командной строке, поэтому вы этого не делаете. Однако установка переменной среды PKG_CONFIG_PATH является ответом на ваш вопрос (Как pkg-config решает, какой путь поиска добавить по умолчанию?). Похоже, вы задаете неправильный вопрос, но вы не предоставляете достаточно информации, чтобы понять, в чем проблема на самом деле. - person nemequ; 26.04.2015
comment
Как дополнительный читатель, вопрос Как pkg-config решает, какой путь поиска добавить по умолчанию? Я читаю как Как узнать, какие пути включены, а какие нет? Что определяет, находится ли путь в списке? В руководстве не упоминаются какие-либо конкретные каталоги, так что это законный вопрос, который можно задать всем, кто имеет дело с .pc файлами. - person Hi-Angel; 08.04.2021