在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,謝謝!