2017-01-25 17 views
1

Я создал сборку ffmpeg со следующим скриптом сборки. https://github.com/Free-Syj/ffmpeg-build-script/blob/master/build-android-ffmpeg.shAndroid FFMPEG build для arm64 не удалось с ошибкой?

Это сработало для armv7.
Когда я попытался сделать для архитектуры arm64, это дало мне следующую ошибку.

NDK/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-gcc не может создать исполняемый файл.

Отредактировано: -

После сценарий сборки был использован, чтобы сделать сборку.

NDK=/Users/tapansodha/Documents/Softwares/AndroidStudio/adt-bundle-mac-x86_64-20140702/android-ndk-r10e 
function build_one 
{ 
./configure --target-os=linux \ 
--prefix=$PREFIX \ 
--enable-cross-compile \ 
--extra-libs="-lgcc" \ 
--arch=arm \ 
--cc=$CC \ 
--cross-prefix=$PREBUILT/bin/aarch64-linux-android- \ 
--nm=$NM \ 
--sysroot=$PLATFORM \ 
--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \ 
--enable-shared \ 
--disable-static \ 
--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \ 
--disable-everything \ 
--disable-debug \ 
--disable-programs \ 
--disable-doc \ 
--enable-decoder=h264 \ 
--enable-decoder=mjpeg \ 
--enable-decoder=mpeg4 \ 
--enable-decoder=mxpeg \ 
--enable-decoder=aac \ 
$ADDITIONAL_CONFIGURE_FLAG 

make clean 
make -j4 install 
} 

#arm arm64-v8a 
PLATFORM=$NDK/platforms/android-21/arch-arm64/ 
PREBUILT=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64 
CC=$PREBUILT/bin/aarch64-linux-android-gcc 
NM=$PREBUILT/bin/aarch64-linux-android-nm 
CPU=arm64 
PREFIX=./android_arm64n/$CPU 
ADDITIONAL_CONFIGURE_FLAG= 
build_one 
+0

Можете ли вы поделиться вариантом своего скрипта aarch64? Тот, который работает, не так полезен для выяснения, что пошло не так :) –

+0

Спасибо Дэн за то, что спросил. Я добавил скрипт сборки. –

ответ

0

Шаг первый должен состоять в том, чтобы обновить NDK. aarch64 был очень новым, когда был выпущен r10e, и компиляторы, вероятно, улучшились для этой цели с тех пор.

Во-вторых, когда дело доходит до проектов autoconf, вам, вероятно, будет намного легче использовать NDK, построенный в standalone toolchains, вместо того, чтобы пытаться самостоятельно подстроить вас.

$ $NDK/build/tools/make_standalone_toolchain.py \ 
    --arch arm64 --install-dir my-toolchain 
$ my-toolchain/bin/clang++ foo.cpp 

Вышеупомянутое будет работать только как кросс-компилятор. Не нужно иметь дело с --sysroot, -gcc-toolchain, или любым из них самостоятельно.