ndk编译x264

来源:互联网 发布:leetcode答案 java 编辑:程序博客网 时间:2024/05/16 01:35

1.下载x264源码:

http://www.videolan.org/developers/x264.html

下载后解压x264源码,进入x264源码目录,本测试机的目录是/Users/zwu/Desktop/Job/playengine/x264-snapshot-20160817-2245

2.编辑编译脚本

创建build_android目录并进入该目录

编辑arm平台下的编译脚本

armv7以下的平台现在市面上存量已经逐渐淘汰,这了就不再编译了

编辑armv7a的编译脚本

创建build_android_arm.sh文件并输入

PLATFORM=$ANDROID_NDK/platforms/android-14/arch-arm/

TOOLCHAIN=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/armv7a

EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__"

EXTRA_LDFLAGS=""

cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--extra-cflags="$EXTRA_CFLAGS" \

--extra-ldflags="$EXTRA_LDFLAGS" \

--enable-pic \

--enable-static \

--enable-strip \

--disable-cli \

--host=arm-linux \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--sysroot=$PLATFORM


make clean

make

make install

}


build_one

输入完毕后保存并退出;


编辑arm64的编译脚本

创建build_android_arm64-v8a.sh文件并输入

PLATFORM=$ANDROID_NDK/platforms/android-21/arch-arm64/

TOOLCHAIN=$ANDROID_NDK/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/arm64

EXTRA_CFLAGS="-march=armv8-a -D__ANDROID__ -D__ARM_ARCH_8__ -D__ARM_ARCH_8A__"

EXTRA_LDFLAGS=""


cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-static \

--enable-pic \

--host=aarch64-linux \

--cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \

--sysroot=$PLATFORM


make clean

make

make install

}


build_one

输入完毕后保存并退出;


编辑mips平台下的编译脚本

mips 32位,build_android_mips.sh:

PLATFORM=$ANDROID_NDK/platforms/android-18/arch-mips/

TOOLCHAIN=$ANDROID_NDK/toolchains/mipsel-linux-android-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/mips

cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-static \

--enable-pic \

--host=mipsel-linux \

--cross-prefix=$TOOLCHAIN/bin/mipsel-linux-android- \

--sysroot=$PLATFORM \

--disable-asm


make clean

make

make install

}


build_one


mips  64位, build_android_mips64.sh

PLATFORM=$NDK/platforms/android-21/arch-arm64/

TOOLCHAIN=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/arm64

cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-static \

--enable-pic \

--host=aarch64-linux \

--cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \

--sysroot=$PLATFORM


make clean

make

make install

}


build_one


编辑intel芯片的编译脚本

intel 64位, build_android_x86_64.sh

PLATFORM=$ANDROID_NDK/platforms/android-21/arch-x86_64/

TOOLCHAIN=$ANDROID_NDK/toolchains/x86_64-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/x86_64

cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-static \

--enable-pic \

--host=x86_64-linux \

--cross-prefix=$TOOLCHAIN/bin/x86_64-linux-android- \

--sysroot=$PLATFORM


make clean

make

make install

}


build_one


intel 32位, build_android_x86.sh

PLATFORM=$ANDROID_NDK/platforms/android-18/arch-x86/

TOOLCHAIN=$ANDROID_NDK/toolchains/x86-4.9/prebuilt/darwin-x86_64

PREFIX=./build/android/x86

cd ../

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-static \

--enable-pic \

--host=i686-linux \

--cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \

--sysroot=$PLATFORM


make clean

make

make install

}


build_one


编译脚本太多也蛋疼,搞个一键编译脚本

一键编译脚本,build_android_all.sh

export ANDROID_NDK=$NDK_PATH

chmod a+x build_android_*.sh


# Build arm v6 v7a

./build_android_arm.sh


# Build arm64 v8a

./build_android_arm64-v8a.sh


# Build mips

./build_android_mips.sh


# Build mips64

#./build_android_mips64.sh


# Build x86

./build_android_x86.sh


# Build x86_64

./build_android_x86_64.sh


3.一键编译

打开命令行中断进入build_android目录:

chmod a+x build_android_all.sh

./build_android_all.sh

接下来就等待漫长的编译过程吧

编译结束源码目录下出现build目录,生成的lib库就在build/android目录下

0 0
原创粉丝点击