Согласно exec man page:
Если command указан,
exec
не должен возвращаться в оболочку...
Таким образом, вы можете иметь некоторый код после exec
.
Если этот код достигнут, значит, что-то пошло не так.
exec foo
ret=$?
## foo was not executed.
иначе вызывающий скрипт оболочки, вызывающей exec
, может получить статус от команды foo
.
например, bash1
вызывает bash2
, bash2
вызывает exec foo
, как указано выше.
В этом случае bash1
получит код возврата от foo
.
bash2
получит любую ошибку от вызова exec foo
.
Я не использую Rasbian, но предполагаю, что вы только что установили библиотеки JSON GLib . Вам также понадобятся файлы заголовков. Они доступны в пакете json-glib-dev
.
В качестве общего совета: если вы обнаружите, что перемещаете объекты (библиотеки, двоичные файлы) как root или создаете символические ссылки здесь и там, то весьма вероятно, что вы делаете что-то не так и есть способ получше делать это.
Установите пакет 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). Если это не сработает, скопируйте и вставьте все запущенные вами команды и их полный вывод.