天天看点

MATLAB之Matlab MEX找不到编译器的问题

本文在安装MATLAB 2015b及Matlab 2016b时,在mex -setup时找不到本人机器上已经安装的VS2013,而且多次卸载重装卸载重装都无济于事,最后得益于这篇文章提供的线索,才终得解决,机是Microsoft Windows SDK 7.1安装的问题,要么这个SDK没安装,要么这个SDK安装的不全,WIN7系统在其后有更新,windows update更新代码为KB2519277,这些都不是重点,只是为了阐明Matlab无法找到编译器是由于系统的问题,缺少必要的更新。

方法1:本人在Microsoft官网,搜索下载Microsoft Windows SDK 7.1,下载后出现安装失败,说是找不到winsdk_dvdx64.msi(本人操作系统是WIN7 64位),查了一些资料,说是需要先卸载Microsoft Visual C++ 2010 x64/x86 Redistribute再安装,试了一下还是不行,还是Microsoft Windows SDK 7.1安装失败,最后放弃这种方法。

方法2:本人在Microsoft官网的下载中心,找到开发人员工具,找到“ Windows SDK 7.1 的 Microsoft Visual C++ 2010 Service Pack 1”下载安装即可,如下图所示:

MATLAB之Matlab MEX找不到编译器的问题
MATLAB之Matlab MEX找不到编译器的问题

安装完成后,mex -setup如下:

MATLAB之Matlab MEX找不到编译器的问题

有一点让人疑惑的是,当选择“mex -setup:E:\CommonSoftware\Matlab2015b\bin\win64\mexopts\winsdk-7.1_c.xml C”编译MatconNet库时,出错了,当选择“ mex -setup:C:\Users\Leo\AppData\Roaming\MathWorks\MATLAB\R2015b\mex_C_win64.xml C”时正常编译通过,而我的机器上只安装了VS2013旗舰版而不是专业版。

总结:在查看Windows Update更新时,发现有Windows SDK 7.1 的 Microsoft Visual C++ 2010 Service Pack 1的更新,当时没有安装更新,可见,出现matlab mex -setup找不到编译器的问题,多半是windows系统的问题,注意检查一下系统更新。

继续阅读