使用Android NDK编译x86架构的FFmpeg 3.1.1

4
最新版本的FFmpeg3.1.1。在3.1版本之后,我无法为x86编译FFmpeg。(但是3.0.2或更早版本可以编译。)
终端显示ld: error: libavutil/../compat/strtod.o: incompatible target
我的操作系统是Xubuntu 14.04 x86x86_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} 是一个目录路径,用于运行 Android NDK 中的工具 make-standalone-toolchain.sh--install-dir 选项。

只有在我编译 x86FFmpeg 时才会出现这种情况。对于 ARM 架构没有问题。

1个回答

10

我遇到了相同的问题并找到了一种解决方法。如果你之前为另一个架构构建过,请确保删除“compat/strtod.o”和“compat/strtod.d”。由于某些原因,在 3.1.1 版本更改架构时,这些文件不会被重新构建,但在以前的版本中可以正常工作。在构建之前,你还应该执行“make clean”操作。


3
@Dave,你救了我的命,可能是6个小时的生命。 - Steve M
我在我的脚本中执行了这个命令 "rm compat/strtod.o rm compat/strtod.d",现在我不必再担心这个问题了。这个问题很烦人,说实话也不容易找到解决方法,谢谢。 - Diljeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接