将x264移植到Android
x264的版本是:x264-snapshot-20131228-2245
NDK的版本:Android-ndk-r8b
虚拟机VMware9.0.2,Ubuntu12.04,
Linux环境下开发需要进行环境变量配置。Linux环境下主要用于x264/ffmpeg使用ndk编译成动态库文件。至于使用Eclipse可以在Linux环境或者Windows环境下。环境配置主要是为了编译动态库使用的,与Eclipse开发无关。
编译x264动态库
在主目录下新建文件夹bysj,x264代码放在~/bysj/目录下,在目录~/bysj/x264-snapshot-20131228-2245/下,新建脚本文件myconfig.sh.其代码为:
export ARM_ROOT=/home/huaguanglu/bysj/android-ndk-r8b
export ARM_INC=$ARM_ROOT/platforms/android-8/arch-arm/usr/include/
export ARM_LIB=$ARM_ROOT/platforms/android-8/arch-arm/usr/lib/
export ARM_TOOL=$ARM_ROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
export ARM_LIBO=$ARM_TOOL/lib/gcc/arm-linux-androideabi/4.4.3
export PATH=$ARM_TOOL/bin:$PATH
export ARM_PRE=arm-linux-androideabi
./configure --disable-gpac --extra-cflags=" -I$ARM_INC -fPIC -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP " --extra-ldflags="-nostdlib -Bdynamic -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/system/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$ARM_LIB -nostdlib $ARM_LIB/crtbegin_dynamic.o $ARM_LIB/crtend_android.o -lc -lm -ldl -lgcc" --cross-prefix=${ARM_PRE}- --disable-asm --host=arm-linux --disable-shared
将上面代码复制到myconfig.sh中,终端到~/bysj/x264-snapshot-20131228-2245/目录下,输入命令:./myconfig.sh运行。运行完了之后,输入make。就会在当前目录下生成libx264.a静态库文件。