2014-11-03 21 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或更低,它应该工作。