Я пытаюсь скомпилировать файл-ролик из git, но запуск autogen.sh выдает мне эту ошибку

configure: error: Package requirements (gtk+-3.0 >= 2.91.1) were not met:

No package 'gtk+-3.0' 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 GTK_CFLAGS
and GTK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Я использую Ubuntu Maverick и не хочу полностью заменять мою текущую версию gtk, glib и т.д.

Я пытался скомпилировать GTK, используя аргумент --prefix файла autogen.sh, но это выдает мне похожую ошибку в моей версии glib.

Как я могу успешно скомпилировать файл-ролик, используя эти новые библиотеки, не прерывая мою установку?

1 ответ1

0

У вас есть, как правило, два варианта:

  • Сообщите каждому новому программному пакету, для которого требуется gtk , во время настройки , где искать нужные библиотеки или

  • Установите новый GTK бок о бок в системном расположении, которое находится в LD_LIBRARY_PATH .

Первый вариант прост и безопасен, если вы хотите собрать (включая компиляцию) всего несколько программ, которые зависят от нового Gtk. Существуют различные способы указания программного обеспечения в определенном месте библиотеки, в зависимости от используемого инструмента конфигурации. Для классических приложений со скриптом configure вам нужно взглянуть на параметры фазы конфигурирования, используя ./configure --help . Ищите такие вещи, как --gtk-lib=PATH или --with-gtk-path=PATH . Часть --with (общая для многих опций) обычно упоминается только один раз в начале справки.

Однако упомянутый вами File-ролик, похоже, использует программу autogen для автоматической процедуры настройки. Вставленный вами фрагмент указывает, какие переменные среды вам нужно установить, чтобы они указывали на конкретный путь GTK+. Похоже, достаточно GTK_LIBS=/full/path/to/your/custom/lib ./autogen.sh .

Общесистемный сценарий немного сложнее, потому что каждый дистрибутив Linux может управлять путями библиотек по-своему, поэтому я не могу дать вам универсальное решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .