【调试】MNN库编译踩坑记录

简述

MNN是阿里的推理框架,号称很快,因此要编译试试。
文档地址:

https://www.yuque.com/mnn/cn

仓库地址:

https://github.com/alibaba/MNN

中文文档和英文文档有些许不同,本文按照中文文档进行编译。

编译主库

环境要求:
● Microsoft Visual Studio (>=2017)
● cmake(>=3.13)
● powershell
● Ninja (构建工具,比nmake更快)
cmake 下载地址:

https://cmake.org/

Ninja 下载地址:

https://ninja-build.org/

以上两个工具建议直接下载release编译好的文件,就是可以直接运行的文件。

正式编译

● 64位编译:在设置中找到vcvars64.bat(适用于 VS 2017 的 x64 本机工具命令提示)并单击,打开VS编译x64架构程序的虚拟环境
● 32位编译:在设置中找到vcvarsamd64_x86.bat(VS 2017的 x64_x86 交叉工具命令提示符)并单击,打开VS交叉编译x86架构程序的虚拟环境

cd /path/to/MNN
powershell # 运行该命令从cmd环境进入powershell环境,后者功能更强大
./schema/generate.ps1

# CPU, 64位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU/lib/x64
# CPU, 32位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU/lib/x86

# CPU+OpenCL, 64位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU-OPENCL/lib/x64 -backends opencl
# CPU+OpenCL, 32位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU-OPENCL/lib/x86 -backends opencl

# CPU+OpenCL+Vulkan, 64位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU-OPENCL/lib/x64 -backends "opencl,vulkan"
# CPU+OpenCL+Vulkan, 32位编译
.\package_scripts\win\build_lib.ps1 -path MNN-CPU-OPENCL/lib/x86 -backends "opencl,vulkan"

可以成功编译主库。

编译转换工具

mkdir build
cd build
cmake -G "Ninja" -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_BUILD_CONVERTER=ON -DCMAKE_BUILD_TYPE=Release -DMNN_WIN_RUNTIME_MT=ON ..
ninja

乱码出错
在这里插入图片描述

尝试用cmake,VS编译找原因

直接编译debugx64,出现MTd MDd不匹配情况,根据提示,将libprotobuf》属性》C++》代码生成-》运行库改为MDd
在这里插入图片描述
解决

出现fatal error C1060: 编译器的堆空间不足

按照MNN生成需要的库,一个个生成
在这里插入图片描述
编译器的堆空间不足 ,再见

继续区域换成中国,尝试ninja编译,成功。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RichardCV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值