一、写在前面
昨天写了在WIN10上面通过Andriod Studio来编译MNN的demo,通过解压.apk文件来得到libMNN.so文件。今天在记录一下使用WSL2来编译MNN-Andriod。
二、WSL2的安装
由于不是本篇的主题,故不在这里进行展开,后续会补充步骤链接。
三、WSL2编译环境配置
1、NDK-Linux安装
上篇在WIN10当中使用Andriod Studio的SDK Manager编译的SDK不适用于Linux,并且WSL2对WIN10的文件访问也存在一些权限问题,故在这里,我们重新在WSL2当中安装NDK。流程如下:
# 创建目录
mkdir -p ~/android-sdk/ndk# 下载NDK(可以从Android官网下载Linux版本的NDK)
cd ~/android-sdk/ndk
wget https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
unzip android-ndk-r25c-linux.zip# 设置环境变量
echo 'export ANDROID_NDK=~/android-sdk/ndk/android-ndk-r25c' >> ~/.bashrc
source ~/.bashrc
下载的时候需要注意自己的网络环境,最好科学一下。
之后进行验证NKD工具链:
# 检查编译器是否存在
ls -l $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
ls -l $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
2、Cmake版本适配
MNN文档对于编译安装版本MNN是的cmake版本是有要求的:
我们这里重新安装一下Cmake来适配编译要求。
# 删除旧版本
sudo apt remove cmake# 添加Kitware的APT仓库
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"# 安装新版本CMake
sudo apt update
sudo apt install cmake
四、在WSL2当中编译MNN
执行如下指令:
cd /mnt/d/DeskTop/MNN/project/android
mkdir -p build_64 && cd build_64
../build_64.sh
一般来说就没啥问题了,enjoy yourself~~~