装了Matlab2016a和VS 2015,但是使用mex  –setup命令后,提示“不到已安装的编译器”,捣鼓一天终于解决了,为方便遇到同样问题的朋友解决问题,将我的解决办法记录如下:
使用“mex -setup -v”命令,查看错误提示的具体内容。运行后的提示如图1所示:
图 1
Matlab的设置命令是通过注册表来实现的,因为版本问题或者因为软件安装时没有采用默认设置,注册表的路径会和Matlab查询的路径不一致,并因此提示错误。
Matlab的相关命令调用的配置文件的路径位于:Matlab安装目录/bin/win64/mexopts。里面有很多和和编译器以及SDK相关的环境配置文件。下图是我的mexopts文件夹下的配置文件,如图2所示:
图 2
根据图1所提示的错误,进行逐一修改,如图1提示,为未到VS2012所提示的错误信息。
正在查注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 否。
... 正在查注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 否。
... 正在查注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 否。
... 正在查注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 否。
键盘按下“win+r”,输入“regedit”打开注册表,如图3:
图 3
以第一条为例,如图4所示,“HKLM”表示注册表中的:HKEY_LOCAL_MACHINE;“HKCU”表示注册表中的:HKEY_CURRENT_USER。编译器错误
图 4
在注册表内到” HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7,没有就在相应目录下创建对应项,图5为本条的相应项:
图 5
图1中提示结果为“否”的,即表明此项存在问题,以图4所示为例,注册表中“HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7”项内的字符串“12.0”未到,我们就在“HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7”项中创建字符串名为“12.0”的字符串,如图6样式,(我的为vs2015,提示为“14.0”),并将VS的安装目录赋值给“12.0”字符串,如图7:
图 6
图 7
同样的方法,将“VS 2012”安装目录内的”VC”文件目录的地址赋值给
注册表“HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7”项下的“12.0”字符串。如图7所示:
图 8
我安装的为VS 2015,检查的内容如图9,包括:注册表中VS相关注册表值,部分文件以及SDK。
图 9
用VS打开Matlab的对应版本的配置文件,如VS 2015的“l”和“l”,如关于文件“cl.exe”文件的命令配置,如图10:
图 10
如图1窗口提示有此项的错误,将检查配置文件路径改为和实际存放路径一致。
如图1错误提示有检查SDK错误的,如图11:
图 11
可在注册表中设置对应项,并将“C:\Program Files (x86)\Windows Kits”赋值给图12中name后双引号所包含内容,名为“InstallationFolder”的字符串,如图12所示:
图 12
对于提示查环境变量结果为“否”的,如图13:
图 13
可在计算机》属性》高级系统设置》环境变量》系统变量中,以图13环境变量后单引号所包括内容,本例的“'VS140COMNTOOLS”为名,新建环境变量,变量值为,浏览目录到VS安装目录下\vs 2015\common7\tool,如图13所示的环境变量后括号内单引号所包含的内容。
这样设置后,我的问题都解决了,如还提示有错误,可根据提示内容,进行类似操作。