【问题标题】:The Android build FFMPEG encounter problemsAndroid构建FFMPEG遇到的问题
【发布时间】:2017-02-27 17:59:30
【问题描述】:

我在Ubuntu上写了一个Android测试App,出现了NDK-BUILD

/home/lee/Work/Android/NDK/Android - NDK - r10e toolchains/arm - Linux - androideabi - 4.8 / prebuilt/Linux - x86_64 / bin /../ lib/GCC/arm - Linux - androideabi / 4.8 /../../../../ arm - Linux - androideabi/bin/ld: 错误:总是找到 - lGLESv2 Collect2:错误:ld 返回 1 个退出状态 Make: * * * [obj/local/armeabi/libffmpeg so] 错误 1

FFmpeg是3.1.4版本,NDK版本是r10e

【问题讨论】:

    标签: android ubuntu ffmpeg


    【解决方案1】:

    这适用于 3.1.4,尽管它不构建单个库。

    #!/bin/bash
    
    NDK=$HOME/Android/Sdk/ndk-bundle
    SYSROOT=$NDK/platforms/android-19/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    CPREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
    
    function build_it {
    ./configure \
        --prefix=$PREFIX    \
        --disable-static    \
        --enable-shared     \
        --disable-doc       \
        --disable-ffmpeg    \
        --disable-ffplay    \
        --disable-ffprobe   \
        --disable-ffserver  \
        --disable-avdevice  \
        --disable-doc       \
        --disable-symver    \
        --cross-prefix=$CPREFIX \
        --target-os=linux   \
        --arch=arm      \
        --enable-cross-compile  \
        --enable-gpl        \
        --sysroot=$SYSROOT  \
        --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
        --extra-ldflags="$ADDI_LDFLAGS" \
        $ADDITIONAL_CONFIGURE_FLAG
        make clean
        make -j9
        make install
    }
    
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    

    构建单个库比它的价值更麻烦,只需确保以正确的顺序加载库:

    avutil, avcodec, avformat, swscale, swresample, postproc
    

    此外,要使用正确的版本号构建库,请更改 ./configure 文件中的这些行

    来自

    SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
    SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
    SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
    

    SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
    SLIB_INSTALL_LINKS='$(SLIBNAME)'
    

    编辑:

    您遇到的关于 GLES 的问题,您能提供更多信息吗?

    【讨论】:

      最近更新 更多