Matlab 错误使用 mex 未找到支持的编译器或 SDK 问题解决记录

记录一下Matlab 与C混合编程时碰到的问题

问题背景

Matlab 版本:2017b
编译器版本:Microsoft Visual C++ 2017 v15.0

在进行mex -setup时报错:

>> mex -setup
错误使用 mex 
未找到支持的编译器或 SDK……

解决方案

使用mex -setup -v命令查看详细信息:

>> mex -setup -v
……
... 正在查找编译器 'Microsoft Visual C++ 2017 (C)'...
... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0...否。
... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0...否。
... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0...是('C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\')。
... 正在执行命令 'set "vcroot=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"&for /f "delims= " %a in ('type "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt"') do @if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\%a\bin\HostX64\x64\cl.exe" call echo %vcroot%'...否。
找不到已安装的编译器 'Microsoft Visual C++ 2017 (C)'。

可见,Matlab在注册表中查到了本机安装的编译器路径,但实际路径在D盘中。之前由于C盘空间问题,将VS 2017卸载并重新装在了D盘。将注册表信息更正后问题解决:

>> mex -setup
MEX 配置为使用 'Microsoft Visual C++ 2017 (C)' 以进行 C 语言编译。

每个人的问题原因不尽相同,仅供参考。

你可能感兴趣的:(C语言相关学习记录,matlab,mex,msvc)