解决matlab错误使用 mex 未找到支持的编译器或 SDK一系列问题

在Matlab中使用mex可以编译c/c++ ,但是首先要设置好编译器,可以使用mex -setup命令来设置。但在命令行中输入mex -setup时,报错:(错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译
器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2016a/win64.html。)

按照提示的可以下载MinGW-w64 C/C++,下载后进行安装。但是若是我们已经安装了VS,则可以用下面的方法。

由于Matlab从2016版本以后使用xml文件来保存配置文件,所以如果使用的Matlab是2016以前的版本,方法可能和本文有所区别。(本文以Matlab2016a和Visual Studio2017为例)我已经安装了VS2017版本,但是我是先安装的matlab后安装的Visual Studio,或者其它一些原因,mex -setup命令无法找到安装好的Visual Studio编译器,仍然报同样的错误,那么就需要进行一些修改才能成功设置编译器了。
在Matlab的安装目录\bin\win64\mexopts(比如我的:E:\Matlab2016a\bin\win64\mexopts)目录中有各种编译器的配置文件,Matlab就是依靠这些xml文件和编译器建立关联,打开文件,查看你的matlab支持的VS版本是否包含你安装的VS版本。

你的错误可能是matlab 根本就找不到VS,原因就是matlab根本就不支持VS20xx(比如matlab2016a支持的最高版本就到2015,如下图,红框的部分是我在网上下载的支持文件。)
在这里插入图片描述
下载mexopts补丁文件 : https://kaba.hilvi

使用 MATLAB 的 `mex` 命令时,如果提示“未找到支持编译器 SDK”,通常是因为 MATLAB 无法检测到系统中已安装的编译器 SDK者未正确配置编译器环境。以下是几种常见的解决方法: ### 1. 安装支持编译器 MATLAB编译器有特定要求,不同版本支持编译器也有所不同。如果系统中没有安装支持编译器,可以通过安装 MinGW-w64 C/C++ 编译器解决问题。MinGW-w64 是一个免费且广泛支持编译器,适用于 Windows 平台。可以通过 MATLAB 的附加功能管理器安装 MinGW-w64 编译器 [^1]。 ### 2. 配置编译器路径 如果系统中已安装了支持编译器,但 MATLAB 仍然无法识别,可以尝试手动配置编译器路径。使用 `mex -setup` 命令来重新配置 MATLAB 使用编译器。如果 `mex -setup` 提示错误,则可以尝试指定编译器路径,例如: ```matlab mex -setup C:\MinGW\bin\gcc.exe ``` 确保路径指向正确的编译器可执行文件。 ### 3. 检查环境变量 确保编译器的安装目录已添加到系统的环境变量中。MATLAB 依赖于系统环境变量来查找编译器SDK。可以检查 `PATH` 环境变量是否包含编译器的二进制文件路径。 ### 4. 更新 MATLAB 如果使用的是较旧版本的 MATLAB,可能存在对新编译器 SDK 支持不足的问题。更新到最新版本的 MATLAB 可能会解决兼容性问题,并支持更多现代编译器SDK。 ### 5. 使用支持编译器列表 访问 MathWorks 官方网站,查找当前 MATLAB 版本支持编译器列表,并确保安装的编译器支持列表中。例如,对于 R2016a 版本,可以访问 [MATLAB R2016a 支持编译器列表](http://www.mathworks.com/support/compilers/R2016a/win64.html) [^1]。 ### 6. 检查 SDK 安装 如果问题SDK 相关,确保已正确安装 Windows SDK Visual Studio 的 SDK 组件。某些编译器依赖于 SDK 来提供必要的头文件和库文件。 ### 7. 重新安装编译器 如果上述方法均无效,可以尝试卸载并重新安装编译器。确保在安装过程中选择所有必要的组件,包括 C/C++ 编译工具和 SDK 支持。 ### 8. 使用 MATLAB 的 `mbuild` 命令 如果 `mex` 仍然无法找到编译器,可以尝试使用 `mbuild` 命令来配置编译器: ```matlab mbuild -setup ``` 这将引导用户完成编译器的配置过程,并可能解决 `mex` 的问题 [^2]。 ### 9. 调试 MATLAB 编译器配置 可以通过运行以下命令查看 MATLAB 当前配置的编译器信息: ```matlab mex.getCompilerConfigurations ``` 该命令将列出所有可用的编译器配置,帮助识别配置问题。 ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值