在android程序中使用NDK编译后的ffmpeg库的时候出现了如下错误:
jni/libs/libavutil.a(mem.o): in function av_malloc:libavutil/mem.c:95: error: undefined reference to 'posix_memalign'
上网查阅,发现是由于android系统一开始并不支持posix,后来增加了对posix的支持。
这个问题出现的主要原因有两个:
1.编译APP的时候指定的APP_PLATFORM 过低
2.编译APP时使用的NDK版本过低
解决方法:
1.检查jni目录下的Application.mk查看APP_PLATFORM
这个APP_PLATFORM一定要和NDK编译ffmpeg的时候使用的版本要高(或者等于)
我这里就是从APP_PLATFORM := android-10 修改到 APP_PLATFORM := android-17
2.检查编译ffmpeg的NDK的版本和APP程序中使用的NDK版本是否一致
我这里是从android-ndk-r9b版本升级到android-ndk-r10e
Command
2015.10.27
转载请说明出处:http://www.cnblogs.com/cmd10/p/4915360.html,谢谢!