Я пытаюсь собрать библиотеку ffmpeg для android в windows 10, используя cygwin. Мне удалось собрать build_ android. sh, но получить файлы .so не удалось. Когда я запускаю build_ android. sh, я могу получить только два файла .so. Один - libavutil.so (0 байт), а другой - libavutil-56.so (3 МБ). Поэтому я попытался удалить 0-байтовый файл и скопировать его из libavutil-56.so в libavutil.so. И я попытался построить, но получил ошибку, как показано ниже. Нет сгенерированного файла libswscale.so. И я обнаружил что-то странное.
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lavutil
нет папки lavutil (права libavutil), но сообщение указывает на lavutil. дайте мне знать, как это решить .. Я злюсь 2 недели.
все сообщение об ошибке
$ make
LD libswscale/libswscale-5.so
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lavutil
collect2: error: ld returned 1 exit status
make: *** [ffbuild/library.mak:103: libswscale/libswscale-5.so] error1
build_ android. sh
NDK=C:/Users/ckdrb/AppData/Local/Android/Sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-16/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
CPU=arm
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/arm-linux-androideabi
PREFIX=$(pwd)/android/$CPU
CUR=`cygpath -m $(pwd)`
TEMPDIR=`cygpath -m c:\Temp\Cygwin`
TMP=`cygpath -m c:\Temp\Cygwin`
function build_android
{
./configure \
--target-os=linux \
--prefix=$PREFIX \
--enable-cross-compile \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_CFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
ADDI_CFLAGS="-marm"
build_android