How to build multiple static libraries of ffmpeg to a dynamic library ffmpeg.so

How to build ffmpeg is here, but you mast --enable-static because Multiple static libraries can generate a dynamic library. However, multiple dynamic libraries can not generate a dynamic library.

When you generate static libraries. you can use follow scrip generate ffmpeg.so

#!/bin/bash  
NDK=~/android-ndk-r14b/
SYSROOT=$NDK/platforms/android-14/arch-arm/  
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64  
CPU=armv7-a
PREFIX=$(pwd)/$CPU  
$TOOLCHAIN/bin/arm-linux-androideabi-ld \
    -rpath-link=$SYSROOT/usr/lib \
    -L$SYSROOT/usr/lib \
    -L$PREFIX/lib \
    -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o \
    $PREFIX/libffmpeg.so \
    $PREFIX/lib/libavutil.a \
    $PREFIX/lib/libavformat.a \
    $PREFIX/lib/libavcodec.a \
    $PREFIX/lib/libavfilter.a \
    $PREFIX/lib/libswresample.a \
    $PREFIX/lib/libpostproc.a \
    $PREFIX/lib/libswscale.a \
    -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \
    $TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a \

Yes, is Linux “ld” command.

猜你喜欢

转载自blog.csdn.net/kingroc/article/details/82344421