ffmpeg + x264 编译提示libx264 not found 的解决方法

时间:2022-09-16 18:14:33

编译ffmpeg和x264吃了不少苦,很重要的一点就是如果你对这个编译不是很熟的话千万不要尝试用cygdrive+windows编译。建议在Ubuntu下编译!


1.首先要确保已经编译了x264的源码

这边是我x264的sh

export NDK=/home/mtb0157/workspace/android-ndk-r9
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export CC=$PREBUILT/bin/arm-linux-androideabi-gcc
export LD=$PREBUILT/bin/arm-linux-androideabi-ld
export AS=$PREBUILT/bin/arm-linux-androideabi-gcc
export AR=$PREBUILT/bin/arm-linux-androideabi-ar
export RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlib
export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip
export PLATFORM=$NDK/platforms/android-8/arch-arm 
export PREFIX=/home/mtb0157/Project/lib
export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip
./configure --prefix=$PREFIX \
--enable-static \
--enable-pic \
--enable-strip \
--disable-cli \
--extra-cflags= "-march=armv7-a  -mfloat-abi=softfp -mfpu=neon" \ #这个没啥用
--host=arm-linux \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--sysroot=$PLATFORM

2.之所以编译的时候提示找不到x264,有两种可能.一是没有把静态库包含进来, 二是包含进来了但是没有权限! 之前我尝试用 -I/usr/local/lib 这个目录作为附加库,结果失败了

于是我用上面的.sh定义我的

PREFIX=/home/mtb0157/Project/lib
x264编译完后 make install 就可以把库导到上面的目录了

3.在ffmpeg的sh里面加入额外的库和头文件

下面是我的sh

#!/bin/bash

NDK=/home/mtb0157/workspace/android-ndk-r9

SYSROOT=$NDK/platforms/android-9/arch-arm/

TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export PLATFORM=$NDK/platforms/android-8/arch-arm 
export PREFIX=/home/mtb0157/Project/lib

function build_one

{

./configure --prefix=$PREFIX\
    --disable-doc \
    --enable-gpl \
    --enable-libx264 \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$PLATFORM \
    --extra-cflags=-I/home/mtb0157/Project/lib/include \
    --extra-ldflags=-L/home/mtb0157/Project/lib/lib
    
    
    

}

CPU=arm

PREFIX=$(pwd)/android/$CPU 

ADDI_CFLAGS="-marm"

build_one

这边指定了之前我导出的x264的库

--extra-cflags=-I/home/mtb0157/Project/lib/include \
    --extra-ldflags=-L/home/mtb0157/Project/lib/lib