【Matlab】Matlab2016a-mex出错-解决方法
来源:互联网 发布:日本房产中介 知乎 编辑:程序博客网 时间:2024/06/06 14:10
配置:win10+64位+matlab16a+VS15
最近在win10系统下,装好了matlab2016和vs2015,由于工作需要对matlab2016进行mex。本以为装好了vs2015,mex的过程应该会很顺利,但是没想到却提示未找到支持的编译器或SDK,如下所示:
在网上搜索了一些解决方法,大多数说是安装提示中说的MinGW-w64 编译器就可以了,毕竟只是matlab找不到编译器而已,也没有指定一定要用vs2015来进行编译。但是鉴于已经安装过vs2015了,就不太想安装别的编译器了。于是决定开始找找原因,到底为什么matlab识别不了vs2015。
- 在matlab中输入以下命令,就可以检查matlab进行mex的过程。
mex -setup -v
- 在vs2015部分的检查结果如下所示:
... 正在查找编译器 'Microsoft Visual C++ 2015 Professional (C)'...... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe'...否。找不到已安装的编译器 'Microsoft Visual C++ 2015 Professional (C)'。
- 和正确编译的结果对比以下可以发现,找不到文件 ‘D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe’,所以系统提示找不到安装好的vs2015编译器。修正。。。
... 正在查找编译器 'Microsoft Visual C++ 2015 Professional (C)'...... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。找不到已安装的编译器 'Microsoft Visual C++ 2015 Professional (C)'。
- 继续检查,发现提示没有安装SDK 8.1版本。安装。。。
... 正在查找编译器 'Microsoft Visual C++ 2015 Professional (C)'...... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...是('C:\Program Files (x86)\Windows Kits\8.1\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\')。... 正在查找环境变量 'VS140COMNTOOLS'...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\Tools\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'...否。找不到已安装的编译器 'Microsoft Visual C++ 2015 Professional (C)'。
- VC目录下没有vcvarsall.bat文件。修正。。。
检查到这里,感觉是自己VC貌似没有装好,缺失了很多文件。
... 正在查找编译器 'Microsoft Visual C++ 2015 Professional (C)'...... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...是('C:\Program Files (x86)\Windows Kits\8.1\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\')。... 正在查找环境变量 'VS140COMNTOOLS'...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\Tools\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Windows Kits\Installed Roots' KitsRoot10...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\Windows Kits\Installed Roots' KitsRoot10...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' KitsRoot10...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' KitsRoot10...否。找不到已安装的编译器 'Microsoft Visual C++ 2015 Professional (C)'。
- 提示没有安装SDK 10版本。安装。。。
... 正在查找编译器 'Microsoft Visual C++ 2015 Professional (C)'...... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder...是('C:\Program Files (x86)\Windows Kits\8.1\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\')。... 正在查找环境变量 'VS140COMNTOOLS'...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\Tools\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...是('D:\ProgramFiles\Microsoft Visual Studio 14.0\')。... 正在查找文件 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'...是。... 正在查找文件夹 'D:\ProgramFiles\Microsoft Visual Studio 14.0\VC'...是。... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Windows Kits\Installed Roots' KitsRoot10...是('C:\Program Files (x86)\Windows Kits\10\')。找到已安装的编译器 'Microsoft Visual C++ 2015 Professional (C)'。
在各种查缺补漏后,matlab终于和VS2015相认了。
此时再输入mex命令,就可以成功编译了。
UPDATE
记录下后续接着折腾的过程。
- 上面虽然已经成功让matlab找到了VS2015,但是由于自己的VS2015貌似没有安装完全,后面进行实际编译的时候还是报错了。
- 于是又重新安装了VS2013(顺带把15卸载了),这次很顺利的将matlab和VS2013链接上了,也成功运行编译了mex XX.cpp。此时系统默认的编译器就是VS2013了。
- 接着跑别的程序时发现不支持13版本的VS,只好再来安装15,漫长的等待后,这次也没有报之前的错误,顺利编译。(所以感觉出错的原因应该是自己的VS没有装好)
- 但是接下来再进行测试的时候,却出现了这样的问题,matlab还是傻傻的在找VS2013的编译器。
- 但其实这里已经将matlab默认的编译器设置成VS2015了,且为了彻底让matlab失去和VS2013的关联,我还把13又卸载了。重启matlab,重启电脑,都没有用,matlab就是不去找前面设置好的VS2015。
- 所以最后只好用最笨的方法,那就是重装matlab。
至此,win10下的matlab2016a+VS2015算是成功编译了。
- 就自己的经验,正常安装好matlab和VS的话,一般mex -setup都是很顺利的。
- 如果出错了就用mex -setup -v命令看看matlab在查找编译器的时候是VS的什么文件没有找到,进行相应的查缺补漏。
- 如果还是不行的话,重装matlab或者VS应该就可以解决问题了。
阅读全文
0 0
- 【Matlab】Matlab2016a-mex出错-解决方法
- Matlab2016a mex -setup出错的解决方法(VS2013)
- matlab mex 找不到编译器解决方法
- Matlab MEX
- matlab mex
- matlab+mex
- MATLAB的通信mex编译问题及解决方法
- MATLAB编译c++出错的解决办法(Error in compile (line 439) mex(args{:});)
- SLIC超像素分割slicmex源代码在windows下matlab中mex出错的修正
- C#调用matlab出错r6034错误解决方法
- MATLAB读入视频出错的解决方法
- Matlab Mex应用
- Matlab 编译MEX文件
- MATLAB mex -setup 使用
- matlab中的mex编译
- Matlab MEX 使用笔记
- Matlab编译mex文件:
- MATLAB mex -setup
- springboot 配置 contextPath
- 从零开始一步步写LSTM
- python中的装饰器
- Java中时间日期的操作
- shuffle过程
- 【Matlab】Matlab2016a-mex出错-解决方法
- 【干货】system/app 下应用打开关闭飞行模式
- SpringBoot新手入门一直显示Bin注入错误
- 32.Struts2_通过超链接动态加载国际化资源文件
- Linux常用命令
- myeclipse maven项目搭建卡死 GC overhead limit exceeded 问题解决
- JDK1.8 AbstractQueuedSynchronizer的实现分析(学习笔记)
- 表格各行变色
- 关于无法修改材质球的问题