在matlab2019a装MatConvNet中遇到的问题及解决

matlab2019a装MatConvNet中遇到的问题及解决(有独一无二的坑!)

先说下我自己的情况,window10系统下安装了matlab2019a破解版,vs2019社区版,想要在matlab中跑个深度网络模型,所以需要安装MatConvNet包,在安装过程中就遇到了各种情况,花费了近两天时间,觉得还是要记录一下,说不定能帮助其他人避免踩坑。(最后我的软件变成了matlab2019正版+vs2017社区版的了,不过后面发现并不是版本问题。。。)

1. MatConvNet包的下载
在此附上别的大佬的较为详细的MatConvNet包的介绍和安装:MatConvNet包

2. 在mex -setup(CPU版本)遇到错误
一开始按照上个链接第一个命令在我这就出现了问题,matlab提示错误:错误使用 mex
未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问…

网上搜一些相关文章,让我①先下载MinGW-w64编译器;②添加系统环境变量
其中也有点小问题,作者给的TDM-GCC的链接下载速度太慢根本下载不了。

3. 安装MinGW-w64未能解决问题
也按照网上的教程安装好了MinGW-w64后,在matlab命令行输入mex -setup;mex -setup C++
安装MinGW-w64后让选择语言和编译器
可以用MinGW-w64编译了!(到这可以解决有些人的matlab编译小的c/c++问题。)暂时的成功让我以为应该马上问题解决了,结果却不然。。。

接着按照第一个标题里的大佬说的步骤输入命令:
接着回到安装MatConvNet包
又有新的问题:这里我把简略的错误提示拼接在一起,实际要长的多
这里我一开始以为可能是两种错误:①下载的MatConvNet包不对;②下载的MinGW-w64不对。
但是这两个都是我从官网下载的,版本也没问题,所以就怀疑是即使在matlab2019上装了MinGW-w64编译器也没用,原因个人觉得可能是MatConvNet包必须有vs,而不能是MinGW-w64(后来发现在vl_compile源码也说明了MatConvNet不支持MinGW-w64!)。所以按照MatConvNet官网说的Windows的一定需要装vs2015及更高版本

5. 下载msvc2019.xml和msvcpp2019.xml并修改注册表和环境变量
因为我电脑已经装了vs2019社区版,这里要说明的是在matlab命令行里面输入mex -setup -v可以看到matlab具体是如何查找编译器的。
我的电脑装了vs2019社区版,但是新的问题:并未在matlab查找路径里面
matlab的具体查找方式
那么我就网上查,说是Matlab设置命令调用的配置文件的路径位于matlab的安装目录:D:\Matlab_R2019a\matlab2019a\bin\win64\mexopts里面有很多和编译器及SDK有关的环境配置文件,如下图是我的(本来是没有msvc2019.xml和msvcpp2019.xml文件的,我后来下载放入的),这里把这两个matlab2019支持vs2019文件下载链接放在这里。MATLAB VS2019 Support.zip
环境配置文件
下载好后放入matlab的配置文件夹里,接着在matlab里面回到装MatConvNet步骤,结果还是显示错误,错误如下:
提示找不到我安装的vs2019.。。。
那么就得按照另一位跟我有着类似的问题的大佬的方式继续搞。附上链接:修改matlab查找编译器的注册表和环境变量

下图为按照那位大佬的方式操作的结果:
可以找到vs2019大部分注册表了!
再接着按照那个链接改,就能让matlab将vs2019作为编译器。到这里相信大部分人的问题得到解决了!(如果出现**‘cl.exe’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。**此问题,网上一搜就有解决方法,大致有两种:①将vs文件夹里面的cl.exe文件放入matlab子文件夹里,具体文件目录网上可找到;②更改环境变量,网上也有)

6. 查找mt.exe,将其路径添加到系统环境变量
不幸的是,我又又又出现了新的错误使用mex问题,下图为一种:‘mt’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
由于又有新的问题,网上各种找也没找到好的解决方案,我开始怀疑这是vs版本问题,所以重装了vs2017,结果还是不行。。。
为了验证是否是我matlab破解版的问题,我用实验室同学装了正版matlab2019的电脑试了一次,一次就成功了啊,我人都裂开了。。。然后我就又卸载破解版的matlab2019,安装了正版的matlab2019,然鹅还是弹出了一样的问题,真的裂开。。。

就又找别的大佬给我看这个问题,发现**‘mt’ 不是内部或外部命令,也不是可运行的程序或批处理文件。**的原因是matlab 的mex命令找不到mt.exe的路径,就在电脑里搜mt.exe文件,这个文件属于win10SDK的工具之一,搜到其在 C:\Program Files (x86)\Windows Kits\10\bin\x64 路径下面,然后将其添加到系统变量中,最后就大功告成了!!

接着安装MatConvNet就成功了!!!
终于成功了!!!

总结

  1. MatConvNet不支持MinGW-w64,一定要装vs2015或者更高版本!
  2. 查看matlab的配置文件,看看是否有vs对应版本的.xml文件!
  3. 按照大佬所说,解决matlab找不到vs编译器:修改matlab查找编译器的注册表和环境变量
  4. 遇到xx不是内部或外部命令,也不是可运行的程序或批处理文件时,先查找到其位置,添加到系统环境变量里。
  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值