我使用以下构建脚本制作了ffmpeg构建版本。 https://github.com/Free-Syj/ffmpeg-build-script/blob/master/build-android-ffmpeg.sh
适用于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 :(得分:0)
第一步应该是升级您的NDK。当r10e发布时,aarch64是非常新的,自那时起编译器可能已针对该目标进行了改进。
其次,当谈到autoconf项目时,你可能会更容易使用内置standalone toolchains的NDK,而不是试图自己装备一个。
$ $NDK/build/tools/make_standalone_toolchain.py \
--arch arm64 --install-dir my-toolchain
$ my-toolchain/bin/clang++ foo.cpp
以上内容仅适用于交叉编译器。无需自己处理--sysroot
,-gcc-toolchain
或其他任何内容。
答案 1 :(得分:0)
尝试将-arch = arm 更改为-arch = aarch64