it编程 > 编程语言 > C/C++

解决Matlab找不到编译器问题以及版本通用方法

26人参与 2026-09-13 C/C++

好多人遇到,在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:\matlab\r2018b\bin\win64\mexopts(根据你自己选择的matlab安装路径去找)

看有没有你的vs版本,我的是vs2019,所以我把2019的xml文件放进去

如果有你的vs版本就不用管,没有可以下载我这里的文件,里面有这些版本的

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

二、在matlab命令行中运行mex -setup -v

由于当时没有截图,这张图vs2019部分就别看了,可以看到,后面都是否,找不到。

进入排查阶段,进入注册表,键盘按下“win+r”,输入“regedit”打开注册表,挨个找。

以第一条为例,“hklm”表示注册表中的:hkey_local_machine;“hkcu”表示注册表中的:hkey_current_user。

在注册表内找到 ”hklm\software\microsoft\visualstudio\sxs\vs7,没有就在相


应目录下创建对应项,如图,我本身没有这些路径,是我自己添加的。

同样的方法,打开注册表“hkcu\software\microsoft\visualstudio\sxs\vs7 ” 项下的 “16.0”字符串,将“ visual studio”安装目录内的 ” vc”文件目录的地址赋值给它。

再次运行mex -setup -v,如果出现下图,说明注册表解决了,但是有个路径问题还是没有解决。

打开d:\matlab\r2018b\bin\win64\mexopts的msvc2019.xml,msvcpp2019.xml(根据你们自己的vs版本选择)两个文件,找到两个地方,对比自己的vs安装路径

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

三、再打开d:\matlab\r2018b\bin\win64\mexopts\compilercomponents

打开下图文件,修改路径为自己的vs安装路径

 再运行mex -setup -v命令,这下你就可以看到这个界面了。

总结

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

matlab编译找不到C++编译器怎么办?mbuild-setup提示未检测到编译器解决方法

09-13

C++ 如何把大顶堆改成小顶堆?priority_queue 与仿函数从原理到模拟实现

09-11

C++中使用大括号初始化时需要注意哪些问题?一文总结

09-13

MQ消息丢失怎么解决?5种方案帮你彻底搞定

09-13

ubuntu虚拟机安装QT找不到图标?打开方式实现教程

09-13

C语言字符数组和字符串的区别是什么?一文搞懂\0的作用

09-14

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论