概述
安装环境:win10 x64、matlab 2017a
MatConvNet是一个运用卷积神经网络解决计算机视觉问题的matlab工具箱,可解决图像分类,分割,面部识别和文本检测等问题。官网地址:http://www.vlfeat.org/matconvnet 。里面有详细的安装教程,函数介绍,已经训练好的模型等。虽然安装过程比较简单,但是还是出现了很多问题,下面就按照安装过程中出现的问题顺序依次阐述。
一 在matlab命令行输入“mex -setup”时出现“No supported compiler or SDK was found.”的问题
在matlab中编译C++程序时,首先需要创建mex file,如果在命令行中输入“mex -setup”时出现“No supported compiler or SDK was found.”说明matlab没有找到你安装的C++编译器的位置或者你未安装C++编译器。如下图所示
我的电脑上安装了MinGW,但还是出现了上面的错误提示。开始我以为应该是matlab找不到MinGW,后来尝试了把MinGW的安装路径添加到环境变量中,还是不行。看到提示说“Install MinGW-w64 Compiler”,又尝试安装了MinGW-w64,结果还是不行。经过几次尝试最后通过以下两种方法解决:
- 方法1:在matlab的命令行中输入以下内容:
setenv('MW_MINGW64_LOC', 'D:SoftwareMinGW-W64mingw64')
后面部分是MinGW-w64的安装路径,你选择自己电脑中MinGW-w64的安装路径即可。这种方法的弊端就是每次打开matlab时都要设置一遍路径。下面通过设置系统变量的方法可以达到一劳永逸的效果。
- 方法2:设置系统变量:
打开计算机的“系统属性”——>"环境变量“,新建一个系统变量,设置变量名为”MW_MINGW64_LOC“,变量值为”D:SoftwareMinGW-W64mingw64“。然后重新启动matlab,此时再输入”mex -setup“,然后选择“mex -setup C++”即可,或者直接输入“mex -setup C++”。
如此一来就成功安装了C++编译器。
二 执行“vl_compilenn”时提示无法运行cl.exe文件
出现这个问题说明电脑中未安装Microsoft Visual Studio,安装完后问题自然就解决了。不过相信大部分人应该不会出现这个问题。
在Windows下要求安装Visual Studio 2015或者更高版本,于是我安装了Visual Studio 2017
三 运行“vl_compilenn”失败
接着cd 到vl_compilenn文件的路径下,在命令行输入“vl_compilenn”,下面就遇到了花费最多时间解决的问题。部分截图如下,中间省略了很多:
……
大概就是说在编译vl_compilenn文件时第583行和第492行出现错误。我并没有运行其它的代码,而是直接运行该文件,所以不可能代码出错,要么是该文件本身有错,要么就是编译器的问题。
后来查找了很多资料,众说纷纭,也尝试了很多办法。在GitHub上找了别人修改过的vl_compilenn替换我的文件;重新下载不同版本编译器;通过Matlab官网的地址下载MinGW64等
看到有人用Visual C++编译成功了,就想要不换个编译器试试,但是总觉得问题不在这,因为之前的错误提示就说要用MinGW 64 C++编译,心想官方指定的应该不会错吧。但是也想不出其它方法了,就查了一下支持Matlab 2017a的C++编译器,果然Matlab 2017a不支持Visual Studio 2017,从以下几个方面可以看出:
- vl_compilenn源代码中就指出 MinGW64 编译器不支持,要使用 Visual Studio C++ 编译器。
- 在路径“D:SoftwareMatlab 2017abinwin64mexopts”下并没有msvcpp2017.xml文件,只包含到msvcpp2015.xml。
同时还可以看到其它编译器支持的版本。
于是卸载Visual Studio 2017,安装Visual Studio 2015,执行以下操作:
1. 在系统变量的Path变量中新建一条路径“C:Program Files (x86)Microsoft Visual Studio 14.0VCbinamd64”
2. 重启Matlab(Tip:每次更新环境变量后都要重启Matlab)
3. >>mex -setup,此时你的编译器会变成“Microsoft Visual C++ 2015”,同时也可以选择MinGW64 Compiler
4. >>mex -setup:'D:SoftwareMatlab 2017abinwin64mexoptsmsvcpp2015.xml'
5. >>vl_compilenn
……
至此就成功安装了MatConvNet,可以运行一个“vl_testnn”测试一下。
Reference:
[1] https://github.com/vlfeat/matconvnet/issues/303
[2] https://ww2.mathworks.cn/help/bugfinder/ref/compilercompiler.html
[3] http://www.vlfeat.org/matconvnet/install/
最后
以上就是现实电灯胆为你收集整理的在matlab中安装“MatConvNet”中遇到的问题和解决方法:“No supported compiler or SDK was found.” 的全部内容,希望文章能够帮你解决在matlab中安装“MatConvNet”中遇到的问题和解决方法:“No supported compiler or SDK was found.” 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复