我試圖在 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
我還進行了更改gmarshal.h
,使其包含gmarshal.h
已安裝的 glib 資料夾中的內容:
#ifndef _marko_glib_loaded
#define _marko_glib_loaded
#include "/home/marko/glib-2.33.1/gobject/gmarshal.h"
#endif
但兩種情況都失敗了。
- 我如何知道編譯 gstreamer 時使用了什麼 glib 並安裝正確的 glib?
- 如何強制 gstreamer_ndk_bundle 使用我已解壓縮/配置/安裝的資料夾中的 glib 來源,而不是系統來源或它使用的任何來源?
- 我在某處讀到,
gstreamer-devel
如果我在編譯時不斷收到此錯誤,我需要套件。我可以在哪裡找到那個包裹?谷歌搜不出來啊... - 有沒有人曾經建構過 gstreamer_ndk_bundle 並活著講述這個故事?
答案1
我--enable-debug=no
在 中設置了標誌glib/Android.mk
。而連結錯誤消失了。嘗試這個。 PS 你必須開始./setup.sh
重新配置所有的套件。