Ubuntu에서 Android용 ffplay를 크로스 컴파일하는 방법은 무엇입니까?

Ubuntu에서 Android용 ffplay를 크로스 컴파일하는 방법은 무엇입니까?

내 Android 앱에서 사용하기 위해 ffplay 바이너리를 구하려고 합니다. 하지만 구성 스크립트를 실행하면 sdl2를 크로스 컴파일하고 헤더와 라이브러리 플래그를 --extra-cflags 및 --extraldflags에 넣었음에도 불구하고 sdl2를 찾을 수 없다는 메시지가 나타납니다. --enable-sdl2 ffplay를 제거하면 빌드할 프로그램 목록에 표시되지 않습니다. release/3.2 브랜치에서 컴파일하도록 관리했지만 ether ffplay 또는 libavutil.so 파일에서 'main'에 대한 정의되지 않은 참조와 관련된 오류가 발생합니다(공유 및/또는 정적 플래그에 따라 다름). 그런 다음 마스터 브랜치의 구성 파일에서 sdl2_cflags 및 sdl2_extralibs 변수를 편집하여 내 라이브러리를 가리키도록 했지만 어쨌든 컴파일되지 않습니다.
내가 도대체 ​​뭘 잘못하고있는 겁니까?

내 구성 파일이 다음과 같이 변경되었습니다.

if enabled sdl2; then
    sdl2_cflags="-I/home/kondenko/Android/ffmpeg/ffmpeg/sdl2/include -D_REENTRANT"
    sdl2_extralibs="-L/home/kondenko/Android/ffmpeg/ffmpeg/sdl2/build/android/obj/local/armeabi-v7a -lSDL2"
    enable sdl2
fi

그리고 내 스크립트는 다음과 같습니다.

make_or_die() {
    make -j $(nproc) || exit
    sudo make install || exit
}

ARCH=arm
API=17
CPU=armv7

WORKING_DIR=~/Android/ffmpeg/ffmpeg

NDK=~/Android/SDK/ndk
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi
SYSROOT=$TOOLCHAIN/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi- 

FFMPEG_PREFIX=$(pwd)/android/$CPU 

SDL=$(pwd)/sdl2
SDL_PREFIX=$SDL/build/android/obj/local/armeabi-v7a

export PATH=$PATH:$TOOLCHAIN/bin:$TOOLCHAIN/include
export CC="arm-linux-androideabi-clang"
export CXX="arm-linux-androideabi-clang++"

build_sdl2() {
    hg clone https://hg.libsdl.org/SDL $SDL
    cd $SDL
    sudo ./build-scripts/androidbuildlibs.sh
    cd $WORKING_DIR
    echo "SDL build folder: $SDL_PREFIX"
}

build_ffmpeg() {
    sudo make distclean
    sudo ./configure \
        --target-os=android \
        --arch=$ARCH \
        --prefix=$FFMPEG_PREFIX \
        --cross-prefix=$CROSS_PREFIX \
        --enable-static \
        --disable-ffprobe \
        --disable-ffmpeg \
        --disable-doc \
        --disable-symver \
        && make_or_die && header "Success! Your files are at $FFMPEG_PREFIX" \
        || (echo \\n && tail ffbuild/config.log && exit)
}

build_sdl2
build_ffmpeg

UPD:구성 파일에 이 줄을 넣어 실행 파일을 얻었지만 이런 방식으로 구축된 ffmpeg나 ffplay는 모두 작동하지 않습니다. 해당 프로세스는 손상된 바이너리 AFAIK와 관련된 코드 132로 종료됩니다. 나는 아직도 그것들을 작동시키는 방법을 모른다.

sdl2_cflags="-I/home/kondenko/Android/ffmpeg/ffmpeg/sdl2/include -D_REENTRANT"
sdl2_extralibs="/home/kondenko/Android/ffmpeg/ffmpeg/sdl2/build/android/lib/armeabi-v7a/libSDL2.so /home/kondenko/Android/ffmpeg/ffmpeg/sdl2/build/android/obj/local/armeabi-v7a/libSDL2.a /home/kondenko/Android/ffmpeg/ffmpeg/sdl2/build/android/obj/local/armeabi-v7a/libSDL2main.a -llog -landroid -ldl -lGLESv1_CM -lGLESv2 -shared"
enable sdl2

관련 정보