20091001753:就像在 Win系统里,dll 会有 32位 和 64位 的区别。
同理,安卓系统,.a 文件也有类似的区别,armv7 是 32位,armv8 是 64位。
#!/bin/bash
export NDK=/home/Android/Sdk/ndk/21.3.6528147 #这里配置先你的 NDK 路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
#arm64-v8a
ARCH=arm64
CPU=armv8-a
API=29
CC=$TOOLCHAIN/bin/clang
CXX=$TOOLCHAIN/bin/clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/
PREFIX=$(pwd)/android/$CPU/$API
OPTIMIZE_CFLAGS="-march=$CPU"
function build_android
{
./configure \
--prefix=$PREFIX \
--enable-neon \
--enable-hwaccels \
--enable-gpl \
--disable-debug \
--enable-small \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-static \
--enable-shared \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS"
make clean
make -j16
make install
echo "============================ build android $CPU->$API success =========================="
}
build_android
这是我的编译脚本 qt编译用的是armv8-a android build platforms 29
结果还是报错