«make» не находит установленную библиотеку

Согласно exec man page:

Если command указан, exec не должен возвращаться в оболочку...

Таким образом, вы можете иметь некоторый код после exec.  Если этот код достигнут, значит, что-то пошло не так.

   exec foo
   ret=$?
   ## foo was not executed.

иначе вызывающий скрипт оболочки, вызывающей exec, может получить статус от команды foo.

например, bash1 вызывает bash2, bash2 вызывает exec foo, как указано выше.

В этом случае bash1 получит код возврата от foobash2 получит любую ошибку от вызова exec foo.

2
23.07.2016, 01:56
2 ответа

Я не использую Rasbian, но предполагаю, что вы только что установили библиотеки JSON GLib . Вам также понадобятся файлы заголовков. Они доступны в пакете json-glib-dev .

В качестве общего совета: если вы обнаружите, что перемещаете объекты (библиотеки, двоичные файлы) как root или создаете символические ссылки здесь и там, то весьма вероятно, что вы делаете что-то не так и есть способ получше делать это.

3
29.04.2021, 00:12

Установите пакет libjson-glib-dev . Он и его зависимости содержат нужные вам файлы.

json-glib / json-glib.h находится под /usr/include/json-glib-1.0 . поэтому созданная вами символическая ссылка бесполезна. Удалите его (это может запутать скрипты настройки ). Чтобы компилятор выполнял поиск файлов заголовков в /usr/include/json-glib-1.0 , вам необходимо передать параметр -I /usr/include/json-glib-1.0. Но не делайте этого вручную: вызовите pkg-config , который включает этот и другие необходимые параметры. Вы должны убедиться, что флаги, переданные компилятору C, включают `pkg-config --cflags json-glib-1.0` , а флаги ссылок включают `pkg-config --libs json-glib-1.0` .

Запуск ./ autogen.sh должен генерировать make-файлы с соответствующими параметрами. Если вы запускали его до того, как были установлены все необходимые библиотеки, снова запустите ./ configure ; это вызовет pkg-config с соответствующими параметрами и сгенерирует новый Makefile . Затем введите make для сборки.

Для сборки пакета Debian достаточно установить зависимости и запустить dpkg-buildpackage (по крайней мере, в jessie, я не проверял, существуют ли необходимые библиотеки в wheezy). Если это не сработает, скопируйте и вставьте все запущенные вами команды и их полный вывод.

1
29.04.2021, 00:12

Теги

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