首页 > 编程知识 正文

Matlab 找不到编译器问题版本通用方法

时间:2023-05-06 17:18:38 阅读:237019 作者:3829

好多人遇到,在matlab中运行mex -setup
提示 mex未找到支持的编译器或 SDK,这篇文章也许会帮你解决其他大多数文章没有提及的问题,也是最致命,最难搞的问题

问题根源安装路径问题导致的错误,而且MATLAB不能自动识别路径变化

我安装的matlab,VS2019没有在默认路径,而且我MATLAB在D盘,而我的VS2019在E盘

先说一下我的情况,先装的matlab 2014b,后来装的VS2019

但是,当我在matlab中运行 mex -setup命令时,出现这个报错。

我在网上看了好多解决方案,发现还是解决不了问题。很苦恼,于是我卸载重新装了一个matlab2018b,本以为这样总行了吧。然而!!!还是不行,吐血了。2018b这次换报错提示了,它提示我安装MinGW-w64 C/C++ 编译器,但是我装了VS2019,倔强的我就不想再装一个编译器。

进入正题

环境:win10,matlab2018b,VS2019

理论上,我这个解决方案,所有版本适用

一、

先进入文件夹,D:MATLABR2018bbinwin64mexopts(根据你自己选择的MATLAB安装路径去找)看有没有你的VS版本,我的是VS2019,所以我把2019的xml文件放进去

如果有你的VS版本就不用管,没有可以下载我这里的文件,里面有这些版本的https://download.csdn.net/download/no_say_you_know/12119043

放进去后,你可以打开MATLAB再试一下mex -setup命令。如果不行,请继续看下一步

二、

在MATLAB命令行中运行mex -setup -v,由于当时没有截图,这张图VS2019部分就别看了,可以看到,后面都是否,找不到。进入排查阶段,进入注册表,键盘按下“win+r”,输入“regedit”打开注册表,挨个找。以第一条为例,“HKLM”表示注册表中的:HKEY_LOCAL_MACHINE;“HKCU”表示注册表中的:HKEY_CURRENT_USER。在注册表内找到 ”HKLMSOFTWAREMicrosoftVisualStudioSxSVS7,没有就在相
应目录下创建对应项,如图,我本身没有这些路径,是我自己添加的。同样的方法,打开注册表“HKCUSOFTWAREMicrosoftVisualStudioSxSVS7 ” 项下的 “16.0”字符串,将“ Visual Studio”安装目录内的 ” VC”文件目录的地址赋值给它。再次运行mex -setup -v,如果出现下图,说明注册表解决了,但是有个路径问题还是没有解决。打开D:MATLABR2018bbinwin64mexopts的msvc2019.xml,msvcpp2019.xml(根据你们自己的vs版本选择)两个文件,找到两个地方,对比自己的VS安装路径

 

可以发现路径有区别,只需要把VS的安装路径复制过来替换掉就行,注意一个文件下有两处这样的地方。两个文件都要修改。

三、

再打开D:MATLABR2018bbinwin64mexoptscompilerComponents,打开下图文件,修改路径为自己的VS安装路径 再运行mex -setup -v命令,这下你就可以看到这个界面了。

由于是事后写的,有的步骤可能残缺或者不清晰的地方,还请大家谅解!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。