2017-01-25 29 views
1

以下のビルドスクリプトでffmpegをビルドしました。 https://github.com/Free-Syj/ffmpeg-build-script/blob/master/build-android-ffmpeg.shAndroid FFMPEG build for 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

ステップ1では、NDKをアップグレードする必要があります。 aarch64は、r10eがリリースされたときに非常に新しいものでした。

第2に、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、またはそのいずれかを処理する必要はありません。

関連する問題