Ubuntu 12.4 で gstreamer_ndk_bundle をビルドしようとしていますが、惨めに失敗しています。すべての「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
。この関数はバージョン 2.30.0 以降のどこかで glib に導入されたため、適切な glib を使用していないのではないかと思われます。
/home/marko/glib-2.33.1/
私は、次の環境変数をエクスポートして、コンパイル/インストールしたフォルダーのソースを使用して gstremaer_ndk_bundle を強制的にビルドしようとしました。
GLIB_GENMARSHAL=/home/marko/glib-2.33.1/gobject/glib-genmarshal
GLIB_COMPILE_SCHEMAS=/home/marko/glib-2.33.1/gio/glib-compile-schemas
また、インストールされた glib フォルダーからgmarshal.h
含まれるように変更しました:gmarshal.h
#ifndef _marko_glib_loaded
#define _marko_glib_loaded
#include "/home/marko/glib-2.33.1/gobject/gmarshal.h"
#endif
しかし、どちらの場合も失敗しました。
- gstreamer をコンパイルするときにどの glib が使用されているかを確認し、適切なものをインストールするにはどうすればよいでしょうか?
- gstreamer_ndk_bundle に、システムのソースやそれが使用するソースではなく、展開/構成/インストールしたフォルダーの glib ソースを使用させるにはどうすればよいですか?
- コンパイル中にこのエラーが引き続き発生する場合はパッケージが必要であるとどこかで読みました
gstreamer-devel
。そのパッケージはどこで見つかりますか?! Google で検索できません... - gstreamer_ndk_bundle をビルドして生き残った人はいますか?
答え1
--enable-debug=no
にフラグを設定しましたglib/Android.mk
。するとリンク エラーはなくなりました。これを試してください。PS./setup.sh
すべてのパッケージの再構成を開始する必要があります。