Windows交叉编译MNN-3.0.0安卓版本库(通过WSL2)

news/2024/12/26 13:58:44/文章来源:https://www.cnblogs.com/Vsonic12138/p/18632691

一、写在前面

昨天写了在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版本是有要求的:
image

我们这里重新安装一下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~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859286.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

再战博客园美化(四)

书接上回 上回提到,博客园的美化实现了vue,并且实现了黑暗模式,现在已经进入到自己美化的地步了。 虽然感觉和安全之路越来越远,不过也是一种体验。 目前的问题现在这个边角有点生硬,不够淡雅。 应该是gpt帮我生成的边角,我试试他原有的样子如何。误会了,它原本的边角就…

【开源】绿联145W能量π外壳

绿联这个移动电源做工和能量还是给力的,但是最近有一个Type-C口既不能充也不能放了,拆解过程非常痛苦,外壳扣太紧了,最后狠下心破坏性拆解掉。电源板是双层堆叠的,拆开上板再插回去后那个坏掉的口子居然复活了。先前可能是内部电路出了什么问题,芯片进入了锁死的状态。接…

基本数据结构——算法学习(三)上

数据结构——算法学习(三)上前言 数据结构是计算机科学的基石,几乎所有的软件开发、算法设计都离不开对数据的组织与管理。它不仅是程序高效运行的保障,也是解决复杂问题的关键工具。学习数据结构的过程,不仅仅是掌握具体的知识点,更是培养逻辑思维能力和问题解决能力的重…

电脑永久免费云存储空间,什么是云存储

在当今全球化的背景下,远程连接技术的重要性愈发凸显。它使得分布在世界各地的团队成员能够实时协作,共享资源,共同推进项目的进展。无论是跨国公司的远程办公,还是国际学术研究中的数据共享,远程连接都发挥着关键的作用,促进了信息的流通和知识的传播。这次给大家介绍什…

这 30 款 IDEA 宝贝插件,顶级优秀!

这 30 款 IDEA 宝贝插件,顶级优秀!头上一片天空 Java知音 2024年12月26日 10:05 河北1、Translation源码英文翻译插件源码中很多注解都是英文,有时候看着有点费劲。这款翻译插件基本上与Idea一体化,从集成度和方便程度来说,可以吊打其他的第三方翻译软件了。不需要你切换窗…

龙哥量化:通达信文华技术指标-双均线策略叠加分时均线,量化策略思路详细分析

如果您需要代写技术指标公式, 请联系我。 龙哥QQ:591438821 龙哥微信:Long622889 也可以把您的通达信,文华技术指标改成TB交易开拓者、金字塔、文华8的自动交易量化策略 开始分享一些细致化的思路和写法,我常用的是TB交易开拓者。对量化感兴趣的朋友可以多交流 这篇介绍重…

MDS100-16-ASEMI电机专用整流模块MDS100-16

MDS100-16-ASEMI电机专用整流模块MDS100-16编辑:ll MDS100-16-ASEMI电机专用整流模块MDS100-16 型号:MDS100-16 品牌:ASEMI 封装:M18 正向电流:100A 反向电压:1600V 引脚数量:5 芯片个数:6 芯片尺寸:50MIL 漏电流:>10ua 恢复时间:>2000ns 浪涌电流:920A 芯片…

Nginx使用手册

由于格式和图片解析问题,为了更好的体验可前往 阅读原文Nginx(发音为 "engine-x")是一个高性能、开源的HTTP和反向代理服务器,也可以作为电子邮件(IMAP/POP3)代理服务器、以及通用的TCP/UDP代理服务器。它由俄罗斯的程序员Igor Sysoev创建于2002年,其目的是解…

在线性坐标系中绘制三角函数图象

本文记述了用 Matplotlib 在线性坐标系中绘制三角函数图象的例子。 代码主体内容如下: ...def main():fig, axs = plt.subplots(1, 3, figsize=(14,4.5)) #1axs[0] = configure_axes(axs[0], Trigonometric Function\t\t\t + r$sine$, 2*np.pi, 1, np.pi, np.pi/2…

美团后端暑期一面,本来收到感谢信,但又复活了!

今天来分享的是一位读者的美团暑期实习一面面经,主要是一些常规八股,难度还是有的,部分题目确实不太好回答。这位同学回答的不是很好,本来是收到感谢信了。结果,过几天又收到复活赛邀请,复活赛倒是打赢了,已oc。 1、线程池的参数/*** 用给定的初始参数创建一个新的Threa…

Makefile文件中,两个$的变量变量$$Xxx 与一个$的变量 $Xxx的区别

使用来引用 Makefile 中的变量。使用$$来引用 shell 中的变量,以确保在传递给 shell 时保留单个符号。原文地址:Makefile文件中,两个$的变量变量$$Xxx 与一个$的变量 $Xxx的区别Makefile 中的变量引用 在 Makefile 中,$ 符号用于变量替换,但它的使用方式有一些细微的区别:…