FFmpeg的最新版本是3.1.1.在3.1版之后,我无法为x86编译FFmpeg.(但是可以编译3.0.2或更早版本.)
终端显示ld:error:libavutil /../ compat / strtod.o:不兼容的目标.
我的操作系统是Xubuntu 14.04 x86和x86_64.(我已经尝试了它们.)
我的NDK版本是r10e(x86)和r12b(x86_64).
当我编译FFmpeg 3.0.2时,它没有错误.
这是我的配置:
./configure \
--prefix="${PREFIX}" \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--cross-prefix="${PREFIX}/bin/i686-linux-android-" \
--target-os=linux \
--arch=x86 \
--enable-cross-compile \
--sysroot="${PREFIX}/sysroot" \
--extra-cflags="" \
--extra-ldflags="" \
--extra-libs="" \
--disable-debug
${PREFIX}是运行make-standalone-toolchain.sh时用于–install-dir选项的目录路径,这是Android NDK中的一个工具.
它只在我为x86编译FFmpeg时发生. ARM架构还可以.
解决方法:
我遇到了同样的问题并找到了解决方法.如果您之前为另一个体系结构构建,请务必删除“compat / strtod.o”和“compat / strtod.d”.出于某些原因,如果您在3.1.1中更改了体系结构,则不会重建这些内容,但它在以前的版本中运行良好.你应该在建造之前做一个“干净”.
标签:c-3,android,c,ffmpeg,android-ndk
来源: https://codeday.me/bug/20190722/1502671.html