1

Я пытаюсь собрать gstreamer_ndk_bundle под Ubuntu 12.4, и у меня ничего не получается! Я установил все пакеты "glib-dev" (пакеты, в названии которых есть glib и dev), а также я попытался скомпилировать / установить glib 2.33.1 (последний) из исходного кода, но я всегда получаю эту ошибку:

/home/marko/gstreamer_ndk_bundle/jni/../glib/gobject/gmarshal.c:149: undefined reference to `g_value_get_schar'
collect2: ld returned 1 exit status
make: *** [/home/marko/gstreamer_ndk_bundle/obj/local/armeabi/libgobject-2.0.so] Error 1

Это означает, что источник glib не имеет определения g_value_get_schar , и, поскольку эта функция была введена в glib где-то после версии 2.30.0, я предполагаю, что я не использую правильный glib!

Я попытался заставить gstremaer_ndk_bundle собрать с исходниками из папки /home/marko/glib-2.33.1/ которую я скомпилировал / установил, экспортировав эти env vars:

GLIB_GENMARSHAL=/home/marko/glib-2.33.1/gobject/glib-genmarshal 
GLIB_COMPILE_SCHEMAS=/home/marko/glib-2.33.1/gio/glib-compile-schemas

Также я изменил gmarshal.h чтобы он включал gmarshal.h из установленной папки glib:

#ifndef _marko_glib_loaded
#define _marko_glib_loaded
#include "/home/marko/glib-2.33.1/gobject/gmarshal.h"
#endif

Но не удалось в обоих случаях.

  • Как я могу узнать, какой glib используется при компиляции gstreamer и установить нужный?
  • Как я могу заставить gstreamer_ndk_bundle использовать источники glib из папки, которую я не тарировал / настроил / установил, а не системные или какие-либо другие, которые он использует?
  • Я где-то читал, что мне нужен пакет gstreamer-devel , если я продолжаю получать эту ошибку во время компиляции. Где я могу найти этот пакет ?! Не могу Google это ...
  • Кто-нибудь когда-либо строил gstreamer_ndk_bundle и жил, чтобы рассказать историю?

1 ответ1

0

Я установил --enable-debug=no flag в glib/Android.mk . И ошибка ссылки исчезла. Попробуй это. PS Вы должны запустить ./setup.sh чтобы перенастроить все пакеты.

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