一、环境
- ubuntu 腾讯云的ubuntu 20.04
- 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相关的禁用掉
3.1.2、移除测试相关的编译
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
成功编译出配置平台的库