使用Android编译FFmpeg 3.1.1 for x86 NDK
问题描述:
最新版本的FFmpeg
是3.1.1
。 3.1
版本后,我不能编译FFmpeg
的x86
。(但3.0.2
或更早的版本可以被编译。)使用Android编译FFmpeg 3.1.1 for x86 NDK
终端显示ld: error: libavutil/../compat/strtod.o: incompatible target
。
我的操作系统是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工具的目录路径。
它只发生在编译FFmpeg
为x86
。 ARM
建筑是好的。
答
我遇到了同样的问题,并找到了解决方法。如果您以前为其他体系结构构建过,请务必删除“compat/strtod.o”和“compat/strtod.d”。出于某些原因,如果您在3.1.1中更改体系结构,则不会重新构建这些体系结构,但它在以前的版本中运行良好。你应该在建造之前做一个“干净的”。
你解决了我的问题。谢谢〜 – user3032481
@Dave你救了我的命,大概6个小时吧。 –
我在我的脚本“rm compat/strtod.o rm compat/strtod.d”中这样做了,现在我不必担心这个问题,很烦人,说实话不容易搞清楚,谢谢 – Diljeet