1、X264编译
NDK=/home/lb/Android/NDk/android-ndk-r14b
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
CPU=arm
PREFIX=/home/lb/Android/new/x264/android
ADDI_CFLAGS="-marm"
export PATH="$PATH:$TOOLCHAIN/bin"
#PKG_CONFIG_PATH="$HOME/Android/Sdk/ndk-bundle/sources/FFmpeg/lib/pkgconfig"
./configure \
--prefix=$PREFIX \
--bindir=$NDK/sources/bin \
--enable-static \
--host=arm-linux \
--enable-pic \
--sysroot=$SYSROOT \
--cross-prefix=arm-linux-androideabi- \
--enable-shared \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
2、freetype编译
下载: https://www.freetype.org/
注意:freetype源码区分windows和linux等
(1)、先编译NDK工具路径
PLATFORM_PREFIX=/opt/android-ext/
NDK_PATH=/home/lb/Android/NDk/android-ndk-r14b/
NDK_PLATFORM=android-14
$NDK_PATH/build/tools/make-standalone-toolchain.sh --platform=$NDK_PLATFORM --install-dir=$PLATFORM_PREFIX
(2)、编译freetype
PLATFORM_PREFIX=/opt/android-ext/
PATH=$PLATFORM_PREFIX/bin:$PATH
./configure --with-png=no --with-zlib=no --host=arm-linux-androideabi --target=arm-linux-androideabi --prefix=/home/lb/Android/new/freetype-2.9/android/
make V=s
make install
编译的过程中,注意是否用的自己的编译器,如果检测到编译器无效,可能会使用默认的gcc
注:我这里编译的时候出现“freetype2 not found using pkg-config”错误,我的解决办法是:
先查看config.log文件,看是否是库目录问题还是其它问题。然后想办法解决,
之后再出现这个问题,则修改:
if ! $pkg_config --version >/dev/null 2>&1; then
warn "$pkg_config not found, library detection may fail."
pkg_config=false
为:
if ! $pkg_config --version >/dev/null 2>&1; then
warn "$pkg_config not found, library detection may fail."
pkg_config=pkg-config
(3)、ffmpeg编译
NDK=/home/lb/Android/NDk/android-ndk-r14b
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
CPU=arm
PREFIX=$(pwd)/android
ADDI_CFLAGS="-marm"
X264DIR=/home/lb/Android/new/x264
FREETYPEDIR=/home/lb/Android/new/freetype-2.9
ADDI_CFLAGS="$ADDI_CFLAGS -I${X264DIR} -I${X264DIR}/android/include -L${X264DIR}/android/lib -I${FREETYPEDIR} -I${FREETYPEDIR}/android/include -I${FREETYPEDIR}/android/include/freetype2 -L${FREETYPEDIR}/android/lib -DANDROID -I${NDK}/sources/cxx-stl/system/include"
# -mfloat-abi=softfp -mfpu=neon"
ADDI_LDFLAGS="$ADDI_LDFLAGS -L${X264DIR}/android/lib -L${FREETYPEDIR}/android/lib"
#--extra-cxxflags='-Wno-multichar -fno-exceptions -fno-rtti'
build_it() {
./configure \
--prefix=$PREFIX \
--disable-static \
--enable-shared \
--disable-linux-perf \
--disable-doc \
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
--enable-avdevice \
--disable-doc \
--enable-libfreetype \
--disable-symver \
--cross-prefix=$CPREFIX \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--pkg-config="/home/lb/Android/new/freetype-2.9/android/lib/pkgconfig" \
--enable-gpl \
--enable-libx264 \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
echo "build done run make install"
}
build_it
注意:多检查交叉编译工具路径,include目录和lib目录
发现毫无头绪的问题,详细看编译产生的log