概述
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编译了!(到这可以解决有些人的matlab编译小的c/c++问题。)暂时的成功让我以为应该马上问题解决了,结果却不然。。。
接着按照第一个标题里的大佬说的步骤输入命令:
又有新的问题:
这里我一开始以为可能是两种错误:①下载的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的安装目录:D:Matlab_R2019amatlab2019abinwin64mexopts里面有很多和编译器及SDK有关的环境配置文件,如下图是我的(本来是没有msvc2019.xml和msvcpp2019.xml文件的,我后来下载放入的),这里把这两个matlab2019支持vs2019文件下载链接放在这里。MATLAB VS2019 Support.zip
下载好后放入matlab的配置文件夹里,接着在matlab里面回到装MatConvNet步骤,结果还是显示错误,错误如下:
那么就得按照另一位跟我有着类似的问题的大佬的方式继续搞。附上链接:修改matlab查找编译器的注册表和环境变量
下图为按照那位大佬的方式操作的结果:
再接着按照那个链接改,就能让matlab将vs2019作为编译器。到这里相信大部分人的问题得到解决了!(如果出现**‘cl.exe’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。**此问题,网上一搜就有解决方法,大致有两种:①将vs文件夹里面的cl.exe文件放入matlab子文件夹里,具体文件目录网上可找到;②更改环境变量,网上也有)
6. 查找mt.exe,将其路径添加到系统环境变量
不幸的是,我又又又出现了新的错误使用mex问题,下图为一种:‘mt’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
为了验证是否是我matlab破解版的问题,我用实验室同学装了正版matlab2019的电脑试了一次,一次就成功了啊,我人都裂开了。。。然后我就又卸载破解版的matlab2019,安装了正版的matlab2019,然鹅还是弹出了一样的问题,真的裂开。。。
就又找别的大佬给我看这个问题,发现**‘mt’ 不是内部或外部命令,也不是可运行的程序或批处理文件。**的原因是matlab 的mex命令找不到mt.exe的路径,就在电脑里搜mt.exe文件,这个文件属于win10SDK的工具之一,搜到其在 C:Program Files (x86)Windows Kits10binx64 路径下面,然后将其添加到系统变量中,最后就大功告成了!!
接着安装MatConvNet就成功了!!!
总结
- MatConvNet不支持MinGW-w64,一定要装vs2015或者更高版本!
- 查看matlab的配置文件,看看是否有vs对应版本的.xml文件!
- 按照大佬所说,解决matlab找不到vs编译器:修改matlab查找编译器的注册表和环境变量
- 遇到xx不是内部或外部命令,也不是可运行的程序或批处理文件时,先查找到其位置,添加到系统环境变量里。
最后
以上就是健壮酒窝为你收集整理的在matlab2019a装MatConvNet中遇到的问题及解决的全部内容,希望文章能够帮你解决在matlab2019a装MatConvNet中遇到的问题及解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复