Мой запрос
Итак, я хочу скомпилировать ffmpeg и упаковать файл stati c (например, libavfilter.a et c) в libffmpeg.so, что я могу сделать для этого?
Мой компл ie окружение :
Ма c ОС: Ма c Ос Каталина версия 10.15.4
Ndk: anroid-ndk-r17 c
build_ android. sh
это моя сборка ffmpeg. sh:
#!/bin/bash
export NDK=/User/Library/Android/ndk/android-ndk-r17c
export SYSROOT=$NDK/platforms/android-19/arch-arm
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CPU=armv7-a
ARCH=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
#configure
./configure \
--prefix=$PREFIX \
--arch=$ARCH \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--extra-ldflags="$ADDI_LDFLAGS" \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--target-os=linux \
--enable-cross-compile \
--enable-gpl \
--disable-shared \
--enable-static \
--disable-doc \
--disable-debug \
--enable-small \
--disable-programs \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
$ADDITIONAL_CONFIGURE_FLAG
#compile
make clean
make -j4
make install
#package
$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 \
libavcodec/libavcodec.a \
libavfilter/libavfilter.a \
libswresample/libswresample.a \
libavformat/libavformat.a \
libavutil/libavutil.a \
libswscale/libswscale.a \
libavdevice/libavdevice.a \
libpostproc/libpostproc.a \
-lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \
$TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a
#strip
$TOOLCHAIN/bin/arm-linux-androideabi-strip $PREFIX/libffmpeg.so
Сообщение об ошибке :
/ ndk / android -ndk-r17c / toolchains / arm- linux -androideabi-4.9 / prebuilt / darwin-x86_64 / bin / arm- linux -androideabi-ld: ошибка: libavformat / libavformat.a: член 15294144 не является объектом ELF
android -ndk-r17c / toolchains / arm- linux -androideabi-4.9 / prebuilt / darwin-x86_64 / bin / arm- linux -androideabi-strip: '/Users/wangqing/Desktop/FFmpeg/ffmpeg/ffmpeg-4.1.4/android/armv7-a/ libffmpeg.so ': такого файла нет