Библиотека сайта rus-linux.net
Фреймворк GStreamer. Часто задаваемые вопросы. Сборка версии фреймворка GStreamer из репозитория git
Оригинал: GStreamer FAQАвторы: Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, Stefan Kost
Дата публикации: 27 августа 2014 г.
Перевод: А.Панин
Дата перевода: 5 сентября 2014 г.
6. Сборка версии фреймворка GStreamer из репозитория git
Вопрос: Существует ли способ тестирования или разработки приложения на основе версии фреймворка GStreamer из репозитория git без нарушения целостности компонентов фреймворка GStreamer, установленных в систему из пакетов?
Ответ: Да! Существуют два варианта действий: вы можете либо работать с компонентами фреймворка GStreamer в окружении без установки (обратитесь к ответу на вопрос "Как я могу вести разработку, пользуясь неустановленной копией фреймворка GStreamer?"), либо использовать инструмент jhbuild проекта GNOME.
В: Как я могу получить новейшую копию исходного кода фреймворка GStreamer из репозитория git?
О: Данные проекта GStreamer расположены на сервере проекта Freedesktop.org. Сам фреймворк GStreamer состоит из различных компонентов. Вначале вам должен понадобиться модуль "gstreamer", содержащий исходный код ядра фреймворка, а также модули "gst-plugins-base" и "gst-plugins-good", содержащие исходный код базового набора плагинов. Наконец, вам также могут понадобиться модули "gst-plugins-ugly", "gst-plugins-bad" и "gst-ffmpeg" для более полной поддержки мультимедийных форматов.
for module in gstreamer gst-plugins-base gst-plugins-good; do git clone git://anongit.freedesktop.org/git/gstreamer/$module ; done
В результате в вашей текущей директории будут созданы три директории: "gstreamer", "gst-plugins-base" и "gst-plugins-good". В том случае, если вы хотите получить исходный код, относящийся к другому модулю, вы можете использовать приведенную выше команду git clone и заменить переменную $module на имя модуля. Как только вы получите исходный код, относящийся к указанным модулям, вам придется перейти в каждую из директорий и выполнить команду ./autogen.sh, которая, кроме всего прочего, позволит получить исходный код, относящийся к модулям, связанным с текущим модулем.
На странице с информацией о модулях приведен список активно разрабатываемых модулей с краткими описаниями.
В: Как я могу получить доступ с правами разработчика к репозиторию исходного кода git проекта GStreamer?
- желаемое имя пользователя системы unix
- ваше полное имя
- ваш адрес электронной почты
- копию вашего публичного ключа sshv2. Если у вас пока нет этого ключа, вы можете сгенерировать его, выполнив команду "ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub-fdo". Результирующий публичный ключ будет сохранен в файле ~/.ssh/id_rsa.pub-fdo
- ваш идентификатор ключа GPG. Он позволит вам добавлять и удалять ключи ssh, связанные с вашей учетной записью.
После сбора данной информации следует обратиться к документу, расположенному по адресу http://freedesktop.org/wiki/AccountRequests, для получения рекомендаций относительно ваших дальнейших действий.
+ running aclocal -I m4 -I common/m4 ... aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library aclocal: configure.ac: 17: macro `AM_PROG_LIBTOOL' not found in library aclocal failed
Что случилось?
О: Утилита aclocal не может найти два макроса, добавленных утилитой libtool в файл с именем libtool.m4. Обычно такая ошибка указывает на то, что вы не установили утилиту libtool, но в этом случае исполнение сценария autogen.sh должно было завершиться неудачей из-за невозможности использования утилиты libtool.
Более вероятной является ситуация, в которой вы установили пакет automake (содержащий утилиту aclocal) с использованием префикса пути, отличного от того, который был использован при установке утилиты libtool. Вы можете проверить это, узнав, какие префиксы путей были использованы при установке утилит aclocal и libtool.
Для решения возникшей проблемы вы можете выполнить одно из трех действий:
-
установить пакет automake с использованием того же префикса пути, что был использован при установке утилиты libtool.
-
принудительно использовать пакет automake в условиях работы с префиксом пути, заданным при установке утилиты libtool, задействовав параметр --with-automake.
-
выяснить префикс пути, использованный при установке утилиты libtool и сообщить утилите aclocal о корректном пути, установив значение соответствующей переменной окружения с помощью команды:
export ACLOCAL_FLAGS="-I $(prefix)/share/aclocal"
причем переменная $(prefix) должна быть заменена на префикс пути, использованный при установке утилиты libtool.
В: Почему при компиляции используются флаги "-Wall -Werror"?
О: Флаг "-Wall" используется потому, что с помощью него выявляется большое количество возможных проблем в коде. Безусловно, не все выводимые предупреждения свидетельствуют о проблемах, но в любом случае лучше искать методы нейтрализации ложных предупреждений компилятора, чем тратить дни на поиск ошибки, о которой он мог сообщить.
Флаг "-Werror" деактивируется при выпуске новых версий. По умолчанию он активирован для исходного кода из репозитория git и пакетов предварительных выпусков новых версий для того, чтобы люди обращали внимание на проблемы, обнаруженные благодаря флагу "-Wall". Мы хотим, чтобы люди активно обнаруживали подобные ошибки и сообщали о них, либо исправляли их.
make ERROR_CFLAGS=""
для очистки значения переменной CFLAGS от флагов, предназначенных для проверки наличия ошибок.
Следующий раздел : Разработка приложений на основе фреймворка GStreamer.