Windows环境下编译C++版的MXNet问题处理

最近涉及要在c++上部署人脸检测的算法,要在Windows环境下编译运行MXNet。对于不熟悉c++的小白的我真是一件又让人抓狂又掉头发的事情。网上关于c++的部署的帖子少之又少,加上又是第一次摸这些东西,所以出现的bug真的数不胜数。写这个blog的目的就是记录下这些bug以及相应的解决方案,以便以后查找。

配置目标

VS2017 ,CUDA9.2, CUDNN7.6, Mxnet1.5.1
生成libmxnet.lib和libmxnet.dll

配置过程

这里先放上MXNet官方配置的过程,流程如下以供参考
Installing MXNet on Windows
Build the C++ package

下面就会详细记录在构建过程中遇到的一些问题以及我的解决方法,和一些需要注意的地方


1.构建VS2017和cuda的时候,切记首先安装VS,再安装cuda(一定要在自定义安装选项里面勾选Visual Studio Integration)
成功安装cuda如下:
在这里插入图片描述


2.操作步骤示例
在这里插入图片描述
在以下位置勾选VC++ 2017 version 15.4 v14.11 toolset
在这里插入图片描述
并在cmd窗口键入以下命令修改Visual Studio 2017的版本(注意自己VS安装路径)


3.在cmake MXNet源码的时候:
在这里插入图片描述
因为要编译c++,所以要加入:
在这里插入图片描述


4.
问题描述:在cmake过程中出现No CMAKE_CUDA_COMPILER could be found,但是明明已经将cuda的环境变量添加过了。
在这里插入图片描述
解决方法:
打开文件C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt\host_config.h,找到这一行:
在这里插入图片描述
将_MSC_VER>1913改为_MSC_VER>1920保存再次cmake,问题得到解决。


5.
在VS里完成对mxnet.sln的编译
Release ×64

  • 在ALL_BUILD属性的VC++目录,在包含目录和库目录里添加相应的opencv的路径

在这里插入图片描述

  • 在CUDA C/C++ Common 中将Target Machine Platform改为64位
    在这里插入图片描述
  • 按照自己电脑显卡的计算力填code generation
    显卡算力查询
    在这里插入图片描述
  • 根据自己电脑情况填写最大进程数
    在这里插入图片描述
  • 解决方案里面,mxnet的核数设置为0

6.
问题描述:LNK118:无法打开输入文件"C:\Program.obj"
在这里插入图片描述
解决方法:
打开mxnet_50的属性-链接器-输入-附加依赖项
在这里插入图片描述
删除C:\Program所在行
最好将每个项目的链接器输入都打开看一下,如果出现这一行 ,删掉即可。


7.
问题描述:
编译过程中出现无法解析的外部命令,并且出现一堆无法识别的cudnn库里的符号。
在这里插入图片描述
点击mxnet属性-链接器-输入-附加依赖项,发现缺少cudnn.lib
解决方法:
手动将cudnn.lib的路径"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64\cudnn.lib"加入。


8.
问题描述:无法打开包括文件:“mxnet-cpp/op.h”:No such file or directory
在这里插入图片描述
解决方法:直接去…/build/Release文件下查看有没有libmxnet.lib和libmxnet.dll文件。如果有,那么编译已经成功。上述错误可能是官方示例文件中包含的一些东西,只要编译出以下文件,从源构建mxnet的工作便已经完成。
在这里插入图片描述


终于在自己的pc上编译完成了mxnet的源码,下一步就是如何在c++上运行mxnet训练好的模型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值