标签:下载 lin abi 环境 toolchain ibm with com UNC
环境 macOS 10.15.4 NDK 21.3.6528147 ffmpeg 4.2.3
1.执行sudo xcodebuild -license,防止编译的时候找不到一些文件报错
2.下载ffmpeg(4.2.3),解压后进入主目录,修改configure文件,找到
SLIBNAME_WITH_MAJOR=‘$(SLIBNAME).$(LIBMAJOR)‘ LIB_INSTALL_EXTRA_CMD=‘$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"‘ SLIB_INSTALL_NAME=‘$(SLIBNAME_WITH_VERSION)‘ SLIB_INSTALL_LINKS=‘$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)‘
改为:
SLIBNAME_WITH_MAJOR=‘$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)‘ LIB_INSTALL_EXTRA_CMD=‘$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"‘ SLIB_INSTALL_NAME=‘$(SLIBNAME_WITH_MAJOR)‘ SLIB_INSTALL_LINKS=‘$(SLIBNAME)‘
3.下载NDK,我这里直接在Android Studio上下载,路径在~/Library/Android/sdk/ndk/21.3.6528147 ,将NDK路径加入path
编辑~/.bash_profile:
NDK_HOME=~/Library/Android/sdk/ndk/21.3.6528147 PATH=${PATH}:${NDK_HOME} export PATH export NDK_HOME
执行source ~/.bash_profile,使得路径实时生效
4.
#!/bin/sh
# 测试通过 sh android.sh armv8-a sh android.sh armv7a sh android.sh i686 sh android.sh x86-64
NDK=${NDK_HOME}
ANDROID_API=29
# armv8-a armv7a aarch64 i686 x86_64
CPU=armv8-a
# arm aarch64 i686 x86_64
ARCH=arm64
PLATFORM=darwin-x86_64
TOOLCHAIN=${NDK}/toolchains/llvm/prebuilt/${PLATFORM}
#OPTIMIZE_CFLAGS="-march=$CPU"
if [ "$#" -lt 1 ]; then
CPU=armv8-a
else
CPU=$(tr [A-Z] [a-z] <<< "$1")
fi
case ${CPU} in
arm|armv5|armv6|armv7|armeabi)
echo ${CPU}
;;
armv7a|armeabi-v7a)
ARCH=arm
CC=${TOOLCHAIN}/bin/armv7a-linux-androideabi${ANDROID_API}-clang
CXX=${TOOLCHAIN}/bin/armv7a-linux-androideabi${ANDROID_API}-clang++
CROSS_PREFIX=${TOOLCHAIN}/bin/arm-linux-androideabi-
;;
hard|armv7a-hard|armeabi-v7a-hard)
echo ${CPU}
;;
neon|armv7a-neon)
;;
armv8|armv8-a|aarch64|arm64|arm64-v8a)
# 验证成功
ARCH=arm64
CC=${TOOLCHAIN}/bin/aarch64-linux-android${ANDROID_API}-clang
CXX=${TOOLCHAIN}/bin/aarch64-linux-android${ANDROID_API}-clang++
CROSS_PREFIX=${TOOLCHAIN}/bin/aarch64-linux-android-
;;
mips|mipsel)
echo ${CPU}
;;
mips64|mipsel64|mips64el)
echo ${CPU}
;;
i686)
ARCH=x86
CC=${TOOLCHAIN}/bin/i686-linux-android${ANDROID_API}-clang
CXX=${TOOLCHAIN}/bin/i686-linux-android${ANDROID_API}-clang++
CROSS_PREFIX=${TOOLCHAIN}/bin/i686-linux-android-
;;
x86-64|x64)
ARCH=x86_64
CC=${TOOLCHAIN}/bin/x86_64-linux-android${ANDROID_API}-clang
CXX=${TOOLCHAIN}/bin/x86_64-linux-android${ANDROID_API}-clang++
CROSS_PREFIX=${TOOLCHAIN}/bin/x86_64-linux-android-
;;
esac
echo "CPU:${CPU}"
echo "ARCH:${ARCH}"
# mac下是darwin-x86_64,Windows是windows-x86_64
#TARGET=${CPU}-linux-androideabi
PREFIX=$(pwd)/android/$CPU
SYSROOT=${TOOLCHAIN}/sysroot
PREFIX=$(pwd)/android/$CPU
CFFLAGS="-Os -fpic -march=${CPU}"
LDFLAGS="-marm"
function build_android
{
./configure \
--prefix=${PREFIX} \
--cross-prefix=${CROSS_PREFIX} \
--target-os=android \
--arch=${ARCH} \
--cpu=${CPU} \
--sysroot=${SYSROOT} \
--extra-cflags="-Os -fpic -march=${CPU}" \
--extra-ldflags=${LDFLAGS} \
--cc=${CC} \
--cxx=${CXX} \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-symver \
--disable-static \
--enable-ffmpeg \
--enable-avdevice \
--enable-cross-compile \
--enable-shared \
--enable-jni \
--enable-neon \
--enable-hwaccels \
--enable-gpl \
--enable-postproc \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j16
make install
}
build_android
标签:下载 lin abi 环境 toolchain ibm with com UNC
原文地址:https://www.cnblogs.com/wenrisheng/p/13111791.html