前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于NDK21编译

基于NDK21编译

原创
作者头像
ruochen
发布2021-12-06 13:24:29
8200
发布2021-12-06 13:24:29
举报
文章被收录于专栏:若尘的技术专栏
  1. 解压cd 到该目录里面
  2. 创建build目录undefinedmkdir build
  3. 复制build.sh到build目录, 注意修改ANDROID_NDK_HOME变量
代码语言:txt
复制
#!/bin/bash
代码语言:txt
复制
ANDROID_ABI=arm64
代码语言:txt
复制
BUILD_DIR_FFMPEG="$( cd "$( dirname "$0" )" && pwd )"
代码语言:txt
复制
BASE_DIR="$( cd "$( dirname "$BUILD_DIR_FFMPEG" )" && pwd )"
代码语言:txt
复制
TARGET_TRIPLE_MACHINE_BINUTILS=arch64
代码语言:txt
复制
HOST_TAG="linux-x86_64"
代码语言:txt
复制
# 自己的ndk的安装位置
代码语言:txt
复制
ANDROID_NDK_HOME=/home/lv/Android/Sdk/ndk/21.0.6113669
代码语言:txt
复制
TOOLCHAIN_PATH=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/${HOST_TAG}
代码语言:txt
复制
SYSROOT_PATH=${TOOLCHAIN_PATH}/sysroot
代码语言:txt
复制
BUILD_DIR_FFMPEG="$( cd "$( dirname "$0" )" && pwd )"
代码语言:txt
复制
TARGET=aarch64-linux-android21
代码语言:txt
复制
FAM_CC=${TOOLCHAIN_PATH}/bin/${TARGET}-clang
代码语言:txt
复制
FAM_CXX=${FAM_CC}++
代码语言:txt
复制
FAM_LD=${FAM_CC}
代码语言:txt
复制
FAM_AS=${FAM_CC}
代码语言:txt
复制
FAM_NM=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-nm
代码语言:txt
复制
../configure \
代码语言:txt
复制
--prefix=${BUILD_DIR_FFMPEG}/android_out/${ANDROID_ABI} \
代码语言:txt
复制
--enable-cross-compile \
代码语言:txt
复制
--target-os=android \
代码语言:txt
复制
--arch=aarch64 \
代码语言:txt
复制
--sysroot=${SYSROOT_PATH} \
代码语言:txt
复制
--cc=${FAM_CC} \
代码语言:txt
复制
--cxx=${FAM_CXX} \
代码语言:txt
复制
--ld=${FAM_LD} \
代码语言:txt
复制
--ar=${FAM_AR} \
代码语言:txt
复制
--as=${FAM_AS} \
代码语言:txt
复制
--nm=${FAM_NM} \
代码语言:txt
复制
--ranlib=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-ranlib \
代码语言:txt
复制
--strip=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-strip \
代码语言:txt
复制
--enable-shared \
代码语言:txt
复制
--disable-static \
代码语言:txt
复制
--disable-avdevice \
代码语言:txt
复制
--disable-debug \
代码语言:txt
复制
--enable-jni \
代码语言:txt
复制
--pkg-config=/usr/bin/pkg-config
  1. 给该build.sh添加可执行权限undefinedchmod +x build.sh
  2. 执行脚本文件: ./build.shundefined内部其实做了一些参数的配置,并且执行父目录的 ../configure
  3. 执行编译: make 或make -j8 或者-j16undefined步骤5会生成makefile文件, make即编译出.so
  4. make installundefined把编译产物安装到build.sh指定的目录中

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档