Я пытаюсь запустить pkg-config
на моем 64-битном элементарном (ubuntu 14.04) из приложения .net gui, и он говорит, что он не находит мои пакеты, которые обнаруживаются при выполнении точной команды с терминала.Как pkg-config решает, какой путь поиска добавить по умолчанию?
Для справки, вот команда:
pkg-config --cflags --libs glib-2.0 gobject-2.0
Используя PKG_CONFIG_DEBUG_SPEW
мне удалось получить подробную информацию отладки для PKG-конфигурации, и это выглядит, как он инициализирует себя по-разному в двух случаях.
Инициализация в .net графического интерфейса приложения:
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-гну/pkgconfig ', который не добавлен в .net-приложение gui.
Почему две инициализации разные?
Как я могу сказать pkg-config, чтобы инициализировать то же самое, что и в терминале?
Примечание: Я знаю, что я могу установить
PKG_CONFIG_PATH
перед вызовом PKG-конфигурации, но я предпочел бы более простое решение, если доступно.
Я не понимаю, почему мне нужно установить 'PKG_CONFIG_PATH' при вызове' pkg-config' из моих .net-приложений, пока все работает нормально с терминала. –
Как я уже сказал, pkg-config при вызове из вашего приложения уже ищет оба пути, которые он ищет в командной строке, поэтому вы этого не делаете. Однако установка переменной окружения PKG_CONFIG_PATH является ответом на ваш вопрос («Как pkg-config решает, какой путь поиска добавить по умолчанию?»). Похоже, вы задаете неправильный вопрос, но вы не предоставляете достаточной информации, чтобы знать, в чем проблема. – nemequ