为什么x86版本的单独出教程
往上的绝大多数都是arm-v7架构的教程,而在实际编译中,x86和arm-v7有不少差异,新手很容易踩坑
没有安装yasm
ffmpeg在编译x86架构时,会调用一个yasm的汇编工具,来对编译进行优化
如果没有安装,则会报以下错误
nasm/yasm not found or too old, Use --disable-x86asm for a crippled build
但实际这个工具的安装比较麻烦,我们直接禁用此工具,使用原始方法进行编译
x86版本sh脚本
#!/bin/bash
TARGET=~/x86
TOOLCHAIN=~/android-ndk-r21b-linux/toolchains/llvm/prebuilt/linux-x86_64
build()
{
./configure \
--prefix=$TARGET \
--disable-asm \
--enable-static \
--enable-shared \
--enable-small \
--enable-gpl \
--disable-doc \
--disable-programs \
--disable-avdevice \
--enable-cross-compile \
--target-os=android \
--arch=x86 \
--cc=$TOOLCHAIN/bin/i686-linux-android23-clang \
--cross-prefix=$TOOLCHAIN/bin/i686-linux-android-
make clean
make -j4
make install
}
build
注意事项
x86版本的脚本,很多和arm-v7是不一样,注意不要改丢了
- TARGET不一样
- asm不一样
- arch不一样
- cc不一样
- cc一定要用23版本的,版本太高,很可能和studio中的编译工具匹配不上
- cross-prefix不一样