2016-06-07 124 views
0

我有麻烦来运行GStreamer教程。我遵循所有教程步骤,并遇到错误。GStreamer“undefined reference to'__srget'”

我的系统:

  • 的Android NDK-r11c,GStreamer的-SDK-的Android-ARM-调试2013.6
  • 我的操作系统:Windows 10 - 64位

错误:

C:\gstreamer-sdk-android-arm-debug-2013.6\share\gst-sdk\tutorials\android-tutorial-1>ndk-build 
GStreamer  : [GEN] => gst-build/gstreamer_android.c 
GStreamer  : [COMPILE] => gst-build/gstreamer_android.c 
GStreamer  : [LINK] => gst-build/libgstreamer_android.so 
lex.priv_gst_parse_yy.c:1598: error: undefined reference to '__srget' 
gutils.c:2406: error: undefined reference to 'issetugid' 
localcharset.c:158: error: undefined reference to '__srget' 
localcharset.c:167: error: undefined reference to '__srget' 
./localcharset.c:195: error: undefined reference to '__srget' 
/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.exe: error: ld returned 1 exit status 
make: *** [buildsharedlibrary] Error 1 

C:\gstreamer-sdk-android-arm-debug-2013.6\share\gst-sdk\tutorials\android-tutorial-1> 

我试过了:

Windows linkage problems : Due to problems related to the standard linker, Google’s Gold Linker is used to build GStreamer applications. Unfortunately, the Android NDK toolchain for Windows does not include the gold linker and the standard one has to be used.

If you observe linkage problems, you can replace the linker in your Android NDK with the gold one from this project. Download the android-ndk-r8b-ma-windows.7z file, extract \android-ndk-r8b\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\arm-linux-androideabi\bin\ld.exe (only this file is needed) and overwrite the one in the same folder in your Android NDK installation.

没有效果。任何想法如何解决这个问题?

回答

0

我之前有类似的问题,请尝试ndk10b.It前总是检查在头文件__srget前前进。

+0

虽然这是一个答案,你可以进一步扩展它吗? http://stackoverflow.com/help/how-to-answer –

+0

Gstreamer为您提供了二进制文件,因此它们可能会使用较早的NDK版本构建,并且可能已经过验证。首先是确认NDK版本是问题的原因,我们应该在当前正在使用的NDK中为__srget grep,如果符号不存在,那么我们确信ndk版本是问题。更进一步,您可以下载并尝试使用旧的NDK。即使有错误日志android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7中的旧版ndk,我们可以看到ndk-r8e。 –