我尝试使用Gstreamer开发Android应用。我使用Fedora 20安装了Eclipse ADT和NDT,Android SDK和NDK,gstreamer SDK for Android。但是当我尝试构建教程时,出了点问题。
当我构建NDK样本(例如hello-jni)时,一切都还可以,但是使用来自gstreamer SDK的样本(无论是来自[gstreamer sdk安装] / 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 :(得分:0)
NDK r10c直到2014年10月11日才得到支持。
“Android二进制文件现在使用r10c NDK构建,并且所有NDK和Android版本再次与二进制兼容” - http://gstreamer.freedesktop.org/
使用最新的NDK和GStreamer Android SDK再试一次。
答案 1 :(得分:0)
我遇到了同样的错误......谷歌从NDKr10c开始删除__srget(在其他修复错误中检查他们的官方网站)。降级到r10b或更低,它应该可以工作。