首页 > 其他分享 >MNN框架在WIN10上的部署

MNN框架在WIN10上的部署

时间:2024-08-17 19:40:05浏览次数:8  
标签:CMAKE 框架 DMNN 编译 FLAGS BUILD MNN WIN10

一、为什么要做

刚进公司,实习期反正主管要求什么我就做什么。。。。自己反正也比较感兴趣,故开始查看官方文档。下述的一切都是基于官方提供的“语雀文档”内的指令进行的,会对自己部署MNN框架的流程当中踩的坑进行记录,希望可以帮助到有缘人。

二、具体内容

1、在各个应用端部署MNN进行机器学习主要分为三个阶段,分别是

2、转换器、工程主体配置和编译

接下来我们需要进行转换器(Convert)和工程主体的cmake配置。
由于对工具链和编译工具的不熟悉,这里我就开始踩坑了,首先我们看官方给出的示例工程编译代码:

cd path/to/MNN
powershell ./schema/generate.ps1
mkdir build
cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DMNN_BUILD_DEMO=ON ..
nmake

这里设计到几个知识点

  1. powershell执行脚本命令
  2. cmake工具使用
  3. nmake工具使用
    由于查看了非常多的资料链接,现在我将能解决我问题的相关博客链接放上来,希望可以帮到大家:

这里在执行完下述指令,也只是对主体工程进行了makefiles的配置,还剩下conventer转换器没有配置,故这里推荐将转换器也一起进行makefiles的配置,具体指令如下:

cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DMNN_BUILD_CONVERTER=ON -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_WIN_RUNTIME_MT=ON

这里面包含了很多的配置,首先

-DCMAKE_BUILD_TYPE=Release

表示生成 Release 版本的构建配置。这意味着代码将进行优化.


-DMNN_BUILD_CONVERTER=ON

这个选项用于控制是否构建 MNN 的模型转换工具 (Converter)。设置为 ON 表示在构建过程中会包含 Converter 工具


-DMNN_BUILD_SHARED_LIBS=OFF

这个选项控制是否构建 MNN 的共享库 (动态链接库)。设置为 OFF 表示构建静态库而不是动态库


-DMNN_WIN_RUNTIME_MT=ON

这个选项用于控制在编译时是否使用多线程的静态运行时库 (MT)。设置为 ON 表示使用 /MT 编译选项,它将运行时库静态链接到目标可执行文件或静态库中,避免依赖外部的动态链接库


最后执行nmake指令,如果你在编译的过程当中遇到了“编码格式”的问题,可以参考我上面给到的链接,主要就是修改CMakeLists.txt当中的内容,添加

# 编译选项 - 设置为使用 UTF-8 编码
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")

去掉:

# specify source file encoding explicitly, fix cross-platform garbled output issue
# we need do this after protobuf which set different execution-charset
IF(MSVC)
 set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} /source-charset:utf-8")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /source-charset:utf-8")
ENDIF()

3、Converter工具的使用

标签:CMAKE,框架,DMNN,编译,FLAGS,BUILD,MNN,WIN10
From: https://www.cnblogs.com/Vsonic12138/p/18364864

相关文章

  • 基于flask+vue框架的学分预警系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大与学分制的深入实施,学生个性化学习需求日益增长,但同时也带来了学业管理上的新挑战。传统的人工管理方式在监控......
  • 基于flask+vue框架的民宿管理系统5f6j4[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着旅游业的蓬勃发展和消费者对个性化旅行体验的追求,民宿作为一种新兴住宿方式迅速崛起。然而,随着民宿市场的不断扩大,其管理难度也......
  • 基于flask+vue框架的高校人力资源管理系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展,高校作为知识创新与人才培养的重要基地,其内部管理的复杂性与日俱增。特别是在人力资源管理方面,传统的手工或简单信......
  • 基于flask+vue框架的的在线考试系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的普及,教育领域正经历着前所未有的变革。传统考试模式,尽管在评估学生学习成果方面发挥着重要作用,但其组织......
  • Xpose框架使用
    前置知识ROOT手机并安装了xpose框架安卓开发基础知识环境依赖配置settings.gradle设置Xposed仓库的网址dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{google()mavenCentral()maven{url'https:/......
  • Java数据库框架设计
    什么是ORM?ORM(Object-RelationalMapping)表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射简单的说:ORM就是建立实体......
  • 基于flask+vue框架的基于mybatis的医用器械管理系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗技术的飞速发展,医用器械在医疗机构中的重要性日益凸显。然而,传统的手工或简单信息系统管理方式已难以满足现代医院对器械管理的高......
  • 基于flask+vue框架的基于B_S架构的兰州市旅游网站的设计与实现[开题+论文+程序]-计算
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展和普及,旅游业作为全球经济的重要支柱之一,正经历着前所未有的变革。兰州市,作为甘肃省的省会城市,不仅拥有丰富的历史文......
  • 基于flask+vue框架的车辆理赔系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车保有量的持续增长,车辆事故频发,车辆保险理赔成为保险公司和车主共同关注的焦点。传统的车辆理赔流程繁琐、效率低下,涉及多方沟通、......
  • 基于flask+vue框架的基于uniapp的酒店订房系统的设计与实现[开题+论文+程序]-计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展和普及,智能手机已成为人们日常生活中不可或缺的一部分,移动应用(App)以其便捷性、实时性等特点,深刻改变着人们......