我们在Xcode/Swift项目中使用FFmpeg。使用arm64架构编译和运行该应用程序运行良好。现在我们想用A12Z芯片来支持设备。他们有"arm64e“的架构。我们使用从kewlbear构建脚本并将行ARCHS="arm64 armv7 x86_64 i386"修改为ARCHS="arm64e arm64 armv7 x86_64 i386"。当我们运行脚本时,我们在arm64e的构建开始时得到一个错误的arm64e。我们如何解决这个问题呢?
发布于 2021-12-27 09:40:54
我遇到了同样的问题,经过检查后,我发现参数"--cpu“对于arm64是不正确的。原来的是"--cpu=arm64-v8a“。正确的是"--cpu=armv8-a“。"--cpu“参数必须以"armv”开头,您可以在FFMPEG配置文件中找到线索,如下所示:
case $cpu in
armv*)
cpuflags="-march=$cpu"
subarch=$(echo $cpu | sed 's/[^a-z0-9]//g')
;;
*)
cpuflags="-mcpu=$cpu"
case $cpu in
cortex-a*) subarch=armv7a ;;
cortex-r*) subarch=armv7r ;;
cortex-m*) enable thumb; subarch=armv7m ;;
arm11*) subarch=armv6 ;;
arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;;
armv4*|arm7*|arm9[24]*) subarch=armv4 ;;
*) subarch=$(probe_arm_arch) ;;
esac
;;
esac下面是我的纸条,它可以很好的工作。
#!/bin/bash
TOOLCHAIN=$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/
API=21
function build_android
{
echo "Compiling FFmpeg for $CPU"
./configure \
--disable-x86asm \
--prefix=$PREFIX \
--disable-static \
--enable-shared \
--enable-small \
--enable-gpl \
--disable-doc \
--disable-programs \
--disable-avdevice \
--enable-cross-compile \
--target-os=android \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-symver \
--cross-prefix=$CROSS_PREFIX \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC
make clean
make -j32
make install
echo "The Compilation of FFmpeg for $CPU is completed"
}
#armv8-a
ARCH=arm64
CPU=armv8-a
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
SYSROOT=$TOOLCHAIN/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
PREFIX=$(pwd)/android/$CPU
build_android
# armv8a -> arm64 -> aarch64-linux-android-
# armv7a -> arm -> arm-linux-androideabi-
# x86 -> x86 -> i686-linux-android-
# x86_64 -> x86_64 -> x86_64-linux-android-
#armv7-a
ARCH=arm
CPU=armv7-a
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
SYSROOT=$TOOLCHAIN/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
PREFIX=$(pwd)/android/$CPU
build_androidhttps://stackoverflow.com/questions/65585890
复制相似问题