解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

时间:2024-05-31 21:37:23

需要用MATLAB来编译一些C代码,但是总是无法找到编译器,网上很多教程并没有什么用,经过摸索终于成功,现予以总结,供遇到类似问题的童鞋参考。

说明:我的MATLAB是2017b,VS是2019版,其他高版本解决方法类似。

 

这种问题一般认为是先安装了MATLAB,后安装了VS所导致的,但是我们不建议重新安装MATLAB,没有那个必要。可以按照以下步骤进行尝试:

 

1. MATALB中运行mex -setup

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

出现问题,未找到编译器,让我安装MinGW-w64,我已经安装了VS,干嘛还要去安装什么其他编译器。

2. MATLAB中运行mex -setup -v,进入详细模式搜索

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

注意看红色框部分,MATLAB主要从注册表中读取SDK和Visual studio的安装路径,出现“否”就代表注册表或环境变量中没有相应的信息或者信息错误。因此我们可以根据具体情况修改注册表和环境变量。

3. 按WIN+R键,输入regedit,打开注册表

上图中“HKLM”代表“HKEY_LOCAL_MACHINE”,而“HKCU”代表“HKEY_CURRENT_USER”。

(1)好了,我们按照上图红框中MATLAB的提示“'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7'”先进入HKEY_LOCAL_MACHINE下的路径,发现VisualStudio下竟然没有“SxS”,我们手动添加上,并加上VS7和16.0

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

“16.0”的值设置为VS的目录,我的是2019社区版,所以按照上面的路径设置。

这里要注意的是要按照你的VS版本设置相应的值,比如VS2019就是16.0,千万不要和以前的版本搞混。

(2)按照MATLAB的提示“'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7'”进入HKEY_CURRENT_USER下的路径,同样加上SxS、VC7和16.0

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

这里“16.0”的值设置为VC的目录。

4. 进入MATLAB目录“C:\Program Files\MATLAB\R2017b\bin\win64\mexopts”下,添加两个文件“msvc2019.xml”和“msvcpp2019.xml”:(若你的版本是2017等也一样,找对应的)

文件链接:

https://download.****.net/download/no_say_you_know/12119043

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

5. MATLA中再次运行mex -setup -v

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

配置为“Microsoft Visual C++ 2019 (C)”编译器,成功!