使用Bambuser源的Andr​​oid NDK建设Andr、Bambuser、NDK、oid

2023-09-06 04:31:14 作者:骑着夕阳看小猪

我试图使用由Bambuser提供的FFmpeg的源代码。

不过,我不能够培养文件

我收到以下错误:

  

ARM-Linux的androideabi-GCC是无法创建一个可执行文件。   C编译器测试失败。

我已经设置了NDK路径为/ home / Android的NDK,但仍然收到此错误

和我使用的Andr​​oid NDK-R5B

谁能帮助? THX

下面是我的build.sh

 #!/斌/庆典

如果[$ NDK=];然后
    回声NDK变量未设置,假定$ {HOME} / Android的NDK
    出口NDK = $ {HOME} / Android的NDK
科幻

SYSROOT = $ NDK /平台/ Android的3 /弓臂
#展开prebuilt / *路径转换为正确的
工具链=`回声$ NDK /工具链/ ARM-Linux的androideabi-4.4.3 / prebuilt / windows`
出口PATH = $工具链/斌:$ PATH

室射频构建/ ffmpeg的
MKDIR -p编译/ ffmpeg的
CD的ffmpeg

#不要现在构建任何霓虹灯版本
对于版本的ARMv5TE armv7a;做

    DEST = .. /建设/ ffmpeg的
    标志= - 目标OS = Linux的--cross- preFIX =臂的Linux androideabi- --arch =手臂
    FLAGS =$ FLAGS --sysroot = $ SYSROOT
    FLAGS =$ FLAGS --soname- preFIX = /数据/数据​​/ com.streaming.realive / lib中/
    FLAGS =$ FLAGS --enable-共享 - 禁用symver命令
    FLAGS =$ FLAGS --enable-小--optimization-标志= -O2
    FLAGS =$ FLAGS --enable-CN codeR = MPEG4 --enable-DE codeR = MPEG4
    FLAGS =$ FLAGS --enable-CN codeR = mpeg2video --enable-CN codeR =得到Nellymoser
    FLAGS =$ FLAGS --enable-协议= RTP --enable-协议= RTMP
    FLAGS =$ FLAGS --enable-协议= HTTP --enable-协议= TCP --enable-协议= UDP
    FLAGS =$ FLAGS --enable-协议=文件

    万一$版
        氖)
            EXTRA_CFLAGS = - 三月=的ARMv7-A -mfloat-ABI = softfp -mfpu =霓虹灯
            EXTRA_LDFLAGS = -  WL  - 修复 -  Cortex-A8的
            #运行时选择的霓虹灯与非氖要求
            #重命名的文件
            ABI =armeabi,V7A
            ;;
        armv7a)
            EXTRA_CFLAGS = - 三月=的ARMv7-A -mfloat-ABI = softfp
            EXTRA_LDFLAGS =
            ABI =armeabi,V7A
            ;;
        *)
            EXTRA_CFLAGS =
            EXTRA_LDFLAGS =
            ABI =armeabi
            ;;
    ESAC
    DEST =$ DEST / $ ABI
    标志=$标志 -  preFIX = $ DEST

    的mkdir -p $ DEST
    回声$ FLAGS --extra-CFLAGS =$ EXTRA_CFLAGS--extra-LDFLAGS =$ EXTRA_LDFLAGS> $ DEST / info.txt
    的./configure $ FLAGS --extra-CFLAGS =$ EXTRA_CFLAGS--extra-LDFLAGS =$ EXTRA_LDFLAGS|三通$ DEST / configuration.txt
    [$ PIPESTATUS == 0] || 1号出口
    使清洁
    让-j4 || 1号出口
    使安装|| 1号出口

做完
 

解决方案

第一 u使用哪个平台? 我建议Ubuntu的。

二确保NDK的路径是正确的。

第三 标志=$ FLAGS --soname- preFIX = /数据/数据​​/ com.streaming.realive / lib目录/

也许你需要在你的计算机上创建相对文件夹

I am trying to use the FFmpeg source provided by the Bambuser.

However, I am fail to build the files

I get the following error:

arm-linux-androideabi-gcc is unable to create an executable file. C compiler test failed.

I have already set the NDK path to /home/android-ndk but still get this error

And I am using Android-NDK-r5b

can anyone help? THX

Here is my build.sh

#!/bin/bash

if [ "$NDK" = "" ]; then
    echo NDK variable not set, assuming ${HOME}/android-ndk
    export NDK=${HOME}/android-ndk
fi

SYSROOT=$NDK/platforms/android-3/arch-arm
# Expand the prebuilt/* path into the correct one
TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows`
export PATH=$TOOLCHAIN/bin:$PATH

rm -rf build/ffmpeg
mkdir -p build/ffmpeg
cd ffmpeg

# Don't build any neon version for now
for version in armv5te armv7a; do

    DEST=../build/ffmpeg
    FLAGS="--target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm"
    FLAGS="$FLAGS --sysroot=$SYSROOT"
    FLAGS="$FLAGS --soname-prefix=/data/data/com.streaming.realive/lib/"
    FLAGS="$FLAGS --enable-shared --disable-symver"
    FLAGS="$FLAGS --enable-small --optimization-flags=-O2"
    FLAGS="$FLAGS --enable-encoder=mpeg4 --enable-decoder=mpeg4"
    FLAGS="$FLAGS --enable-encoder=mpeg2video --enable-encoder=nellymoser"
    FLAGS="$FLAGS --enable-protocol=rtp --enable-protocol=rtmp"
    FLAGS="$FLAGS --enable-protocol=http --enable-protocol=tcp --enable-protocol=udp"
    FLAGS="$FLAGS --enable-protocol=file"

    case "$version" in
        neon)
            EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon"
            EXTRA_LDFLAGS="-Wl,--fix-cortex-a8"
            # Runtime choosing neon vs non-neon requires
            # renamed files
            ABI="armeabi-v7a"
            ;;
        armv7a)
            EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp"
            EXTRA_LDFLAGS=""
            ABI="armeabi-v7a"
            ;;
        *)
            EXTRA_CFLAGS=""
            EXTRA_LDFLAGS=""
            ABI="armeabi"
            ;;
    esac
    DEST="$DEST/$ABI"
    FLAGS="$FLAGS --prefix=$DEST"

    mkdir -p $DEST
    echo $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" > $DEST/info.txt
    ./configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" | tee $DEST/configuration.txt
    [ $PIPESTATUS == 0 ] || exit 1
    make clean
    make -j4 || exit 1
    make install || exit 1

done

解决方案

First which platform u use? I suggest Ubuntu.

Second make sure NDK path is correct.

Third FLAGS="$FLAGS --soname-prefix=/data/data/com.streaming.realive/lib/"

maybe you need to create the relative folder in your computer