编译Android版本的x264库。
编译步骤
特别注意点
- 由于Android NDK在r18以及之后版本,就不包含gcc工具了,改为clang替换。
- 建议生成独立NDK工具链编译。
- 阅读NDK官方文档很重要。
步骤
- 获取x264源码
- 准备编译环境
- 编译
获取x264代码
从官方网站获取源码。
准备编译环境
下载NDK
官网下载最新版本r21 ,解压到任意目录,如 ~/sources/android-ndk-r21
生成工具链
- 到DNK解压目录
cd ~/sources/android-ndk-r21/build/tools - 执行命令
python make_standalone_toolchain.py --arch arm64 --api 29 --install-dir ~/sources/ndk-toolchains-arm64-api29/生成工具链。工具链生成到~/sources/ndk-toolchains-arm64-api29目录。
编译
解压源码
解压x264源码到任意目录,如 ~/source/x264-master
configure/make/make install
编译脚本参考
API_LEVEL=23
MY_TOOLCHAINS=~/sources/ndk-toolchains-arm64-api${API_LEVEL}
SYSROOT=$MY_TOOLCHAINS/sysroot
PREFIX=./android/arm64
# Add the standalone toolchain to the search path.
export PATH=$PATH:$MY_TOOLCHAINS/bin
# Tell configure what tools to use.
target_host=aarch64-linux-android
export AR=$target_host-ar
export AS=$target_host${API_LEVEL}-clang
export CC=$target_host${API_LEVEL}-clang
export CXX=$target_host${API_LEVEL}-clang++
export LD=$target_host-ld
export STRIP=$target_host-strip
# Tell configure what flags Android requires.
export CFLAGS="-fPIE -fPIC"
export LDFLAGS="-pie"
export EXTRA_CFLAGS="-mfloat-abi=softfp -mfpu=neon"
./configure \
--prefix=${PREFIX} \
--enable-shared \
--enable-static \
--enable-pic \
--disable-asm \
--host=arm-linux \
--sysroot=${SYSROOT}
make clean
make
make install
编译完成后,在当前目录的 android/arm64/ 目录下就有所有的输出文件了。