Ich versuche, gstreamer_ndk_bundle unter Ubuntu 12.4 zu erstellen und scheitere kläglich! Ich habe alle „glib-dev“-Pakete installiert (Pakete, die in ihrem Namen glib
und haben dev
) und habe auch versucht, glib 2.33.1 (aktuellste) aus dem Quellcode zu kompilieren/installieren, aber ich erhalte immer diesen Fehler:
/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
Dies bedeutet, dass die Glib-Quelle die Definition für nicht hat g_value_get_schar
, und da diese Funktion irgendwann nach Version 2.30.0 in Glib eingeführt wurde, gehe ich davon aus, dass ich kein richtiges Glib verwende!
Ich habe versucht, gstremaer_ndk_bundle zum Erstellen mit Quellen aus dem Ordner zu zwingen /home/marko/glib-2.33.1/
, den ich kompiliert/installiert habe, indem ich diese Umgebungsvariablen exportiert habe:
GLIB_GENMARSHAL=/home/marko/glib-2.33.1/gobject/glib-genmarshal
GLIB_COMPILE_SCHEMAS=/home/marko/glib-2.33.1/gio/glib-compile-schemas
Außerdem habe ich es so geändert , dass es aus dem installierten Glib-Ordner gmarshal.h
enthält :gmarshal.h
#ifndef _marko_glib_loaded
#define _marko_glib_loaded
#include "/home/marko/glib-2.33.1/gobject/gmarshal.h"
#endif
Aber in beiden Fällen schlug es fehl.
- Wie kann ich herausfinden, welches Glib beim Kompilieren von Gstreamer verwendet wird und das richtige installieren?
- Wie kann ich gstreamer_ndk_bundle zwingen, Glib-Quellen aus dem Ordner zu verwenden, den ich deinstalliert/konfiguriert/installiert habe, und nicht die Systemquellen oder was auch immer es verwendet?
- Ich habe irgendwo gelesen, dass ich
gstreamer-devel
ein Paket brauche, wenn ich beim Kompilieren immer wieder diesen Fehler bekomme. Wo kann ich dieses Paket finden?! Ich kann es nicht googeln ... - Hat irgendjemand jemals gstreamer_ndk_bundle erstellt und überlebt, um davon zu erzählen?
Antwort1
Ich habe --enable-debug=no
das Flag gesetzt glib/Android.mk
. Und der Linkfehler ist weg. Versuchen Sie Folgendes. PS: Sie müssen anfangen, ./setup.sh
alle Pakete neu zu konfigurieren.