2014-11-03 23 views
1

我嘗試使用Gstreamer開發Android應用程序。我使用安裝了Eclipse的Fedora 20與ADT和NDT,Android SDK和NDK,Android版gstreamer SDK。但是當我嘗試構建教程時出了點問題。如何使Eclipse與Gstreamer SDK一起工作?

當我構建NDK示例(如hello-jni)時,一切都可以,但是構建不適合使用gstreamer SDK中的示例(絕對是來自[gstreamer sdk installation]/share/gst的android-tutorial-1 -sdk /教程/)。以下是我在日誌中看到:

13:13:10 **** Auto Build of configuration Default for project Tutorial1 **** 
/home/staslatgttt/work/android-ndk-r10c/ndk-build all 
GStreamer  : [GEN] => gst-build/gstreamer_android.c 
GStreamer  : [COMPILE] => gst-build/gstreamer_android.c 
GStreamer  : [LINK] => gst-build/libgstreamer_android.so 
/home/staslatgttt/work/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.gold: /home/staslatgttt/work/gstreamer-sdk-android-arm-debug-2013.6//lib/libgstreamer-0.10.a(libgstparse_la-lex.priv_gst_parse_yy.o): in function priv_gst_parse_yylex:lex.priv_gst_parse_yy.c:1598: error: undefined reference to '__srget' 
/home/staslatgttt/work/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.gold: /home/staslatgttt/work/gstreamer-sdk-android-arm-debug-2013.6//lib/libglib-2.0.a(libcharset_la-localcharset.o): in function _g_locale_get_charset_aliases:localcharset.c:158: error: undefined reference to '__srget' 
/home/staslatgttt/work/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.gold: /home/staslatgttt/work/gstreamer-sdk-android-arm-debug-2013.6//lib/libglib-2.0.a(libcharset_la-localcharset.o): in function _g_locale_get_charset_aliases:localcharset.c:167: error: undefined reference to '__srget' 
/home/staslatgttt/work/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.gold: /home/staslatgttt/work/gstreamer-sdk-android-arm-debug-2013.6//lib/libintl.a(localcharset.o): in function locale_charset:./localcharset.c:195: error: undefined reference to '__srget' 
/home/staslatgttt/work/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.gold: /home/staslatgttt/work/gstreamer-sdk-android-arm-debug-2013.6//lib/libintl.a(log.o): in function __sputc:/home/slomo/Projects/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.7/include-fixed/stdio.h:376: error: undefined reference to '__swbuf' 
collect2: ld returned 1 exit status 
make: *** [buildsharedlibrary] Error 1 

13:13:11 Build Finished (took 972ms) 

我想上網衝浪,但我沒有找到有用的解釋如何解決這個問題。我所理解的是,這個問題與Gold Linker有關。只有在這個網站http://docs.gstreamer.com/display/GstSDK/Installing+for+Android+development是一個關於Windows上的Gold Linker問題的小技巧,但我使用Linux!無論如何,如果我想在Windows上解決這個問題,那麼提到的「這個項目」鏈接是不可行的。

任何人都可以幫助我嗎?我不知道,我做錯了什麼,但我真的需要解決這個問題。

+0

似乎很多人在使用ndk r10c時抱怨這一點。也許需要重建所有預建的圖書館。但最快速的解決方案是使用ndk r9系列 – Gavin 2014-11-14 09:43:41

回答

0

直到11-10-2014,NDK r10c才被支持。

「Android的二進制文件現在用R 10c中NDK,因此二進制兼容的內置再次與所有NDK和Android版本」 - http://gstreamer.freedesktop.org/

了最新的NDK和GStreamer的Android SDK中再次嘗試。

0

我遇到了同樣的錯誤...谷歌刪除__srget從NDKr10c開始(檢查他們的官方網站在其他固定的錯誤)。降級到r10b或更低,它應該工作。