Ubuntu编译android平台的libyuv

一、环境

  • ubuntu 腾讯云的ubuntu 20.04
    Ubuntu编译android平台的libyuv_第1张图片
  • NDK
    1、/etc/profile配置NDK环境变量
sudo vim /etc/profile

在这里插入图片描述
2、一定要使用source /etc/profile命令,是新配置的环境变量生效

source /etc/profile

3、使用echo ${NDK_HOME}查看是否生效

echo ${NDK_HOME}

在这里插入图片描述

二、源码下载

git clone https://chromium.googlesource.com/libyuv/libyuv

三、修改源码mk文件

3.1、修改Android.mk

3.1.1 libyuv会依赖libjpeg库,这里我们将jpeg相关的禁用掉

Ubuntu编译android平台的libyuv_第2张图片

3.1.2、移除测试相关的编译

Ubuntu编译android平台的libyuv_第3张图片

3.2、新增Application.mk

APP_ABI := armeabi-v7a arm64-v8a
APP_PLATFORM := android-21
APP_OPTIM := debug
APP_CFLAGS += -fexceptions  
APP_STL := gnustl_static  

四、ndk-build编译

4.1、进入libyuv的根目录,执行ndk-build clean

ndk-build clean

在这里插入图片描述
最新的NDK使用命令行编译需要制定项目路径,Android.mk,Application.mk文件路径

ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
  • NDK_PROJECT_PATH=. 后面是一个英文句号“.”,表示当前路径
    在这里插入图片描述
    /home/ubuntu/android-ndk-r26b/build/core/add-application.mk:177: *** Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared.

我们刚刚在Application.mk里面APP_STL := gnustl_static不再支持,需要调整为c++_static:

修改后的Application.mk

APP_ABI := armeabi-v7a arm64-v8a
APP_PLATFORM := android-21
APP_OPTIM := debug
APP_CFLAGS += -fexceptions  
APP_STL := c++_static  

Ubuntu编译android平台的libyuv_第4张图片
Ubuntu编译android平台的libyuv_第5张图片
成功编译出配置平台的库

你可能感兴趣的:(jni,libyuv,ubuntu,ndk)