Сборка Android-NDK с использованием источника Bambuser - PullRequest
3 голосов
/ 03 ноября 2011

Я пытаюсь использовать источник FFmpeg, предоставленный Bambuser.

Однако я не могу собрать файлы

Я получаю следующую ошибку:

arm-linux-androideabi-gcc не может создать исполняемый файл.Сбой теста компилятора C.

Я уже установил путь NDK в / home / android-ndk, но все еще получаю эту ошибку

И я использую Android-NDK-r5b

кто-нибудь может помочь?THX

Вот мой 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

Ответы [ 4 ]

2 голосов
/ 03 ноября 2011

Первый какую платформу вы используете?Я предлагаю Ubuntu.

Второй Убедитесь, что путь NDK правильный.

Третий FLAGS="$FLAGS --soname-prefix=/data/data/com.streaming.realive/lib/"

, возможно, вам нужносоздайте соответствующую папку на вашем компьютере

0 голосов
/ 13 июля 2015

здесь мой config.log Я также получаю ту же проблему при использовании скрипта bambuser. Я использую Ubuntu

type mktemp
mktemp is /bin/mktemp
WARNING: Unknown C compiler arm-linux-androideabi-gcc, unable to select optimal CFLAGS
check_ld
check_cc
BEGIN /tmp/ffconf.ItYaeeJM.c
    1   int main(void){ return 0; }
END /tmp/ffconf.ItYaeeJM.c
arm-linux-androideabi-gcc -c -o /tmp/ffconf.woaTRE0T.o /tmp/ffconf.ItYaeeJM.c
./configure: 572: ./configure: arm-linux-androideabi-gcc: not found
C compiler test failed.
0 голосов
/ 19 ноября 2011

Если вы работаете в операционной системе Windows, попробуйте добавить путь вашей цепочки инструментов (используется в build.sh) в переменную среды PATH (из свойств My Computer).

Например:

C:\android-ndk-r7\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin

Попробуйте это.

0 голосов
/ 08 ноября 2011

Сначала проверьте файл configure.log в каталоге ffmpeg. В том, что последние несколько строк указывают на точную ошибку, с которой вы столкнулись. Если вы опубликуете эту ошибку, мы можем вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...