Matlab 找不到编译器解决方案:MinGW-w64 C/C++环境配置
最近在使用 Matlab 编译 C/C++ 代码或 .mex 文件时,常遇到'未找到支持的编译器或 SDK'报错。问题核心在于电脑缺少 Matlab 认可的 C/C++ 编译器。对于 Windows 用户,推荐方案是 MinGW-w64。
1. 理解问题根源:为什么 Matlab 需要单独的编译器?
在深入操作之前,花几分钟搞清楚'为什么',能帮你避免未来很多'是什么'的困惑。Matlab 本身是一个强大的解释型语言环境,但它的部分核心函数和工具箱底层是由 C/C++编写的。当你需要做以下几件事时,就必须配置一个外部的 C/C++ 编译器:
- 编写或编译 MEX 文件:MEX(MATLAB Executable)是 Matlab 调用 C/C++/Fortran 代码的接口。如果你想提升关键循环的性能,或者集成现有的 C/C++ 库,就需要将你的 C 代码编译成
.mexw64(Windows 64 位)文件,供 Matlab 直接调用。 - 使用某些需要编译的 Simulink 模块。
- 编译一些第三方工具箱或工具。
Matlab 并不自带完整的 C/C++ 编译工具链。在较老的版本(如 R2015b 及之前),它捆绑了特定版本的 Microsoft Visual Studio 编译器。但从 R2016b 开始,MathWorks 停止提供免费的 VS 编译器支持,转而推荐用户使用免费的 MinGW-w64 编译器。这就是当你运行 mex -setup 时,提示让你安装 MinGW-w64 的原因。
注意:MinGW-w64 是'Minimalist GNU for Windows 64-bit'的缩写,它是一个让 GCC(GNU Compiler Collection)编译器套件能在 Windows 上运行的工具。简单理解,它就是 Windows 版的 GCC,可以编译出原生的 Windows 程序。
所以,配置过程本质上就是:1)获取正确的 MinGW-w64 编译器;2)把它安装到合适的位置;3)告诉 Matlab 这个编译器的'家庭住址'(即设置环境变量)。
2. 获取与安装正确的 MinGW-w64 发行版
这一步是基础,选错版本会导致后续所有步骤失败。网络上 MinGW 的版本繁多,我们需要的是 Matlab 官方明确支持的那个。
2.1 选择正确的版本
MathWorks 官方维护了一个支持编译器的列表。对于当前主流的 Matlab 版本(R2017b 及以后),最稳妥、最推荐的方式是使用 Matlab 自带的附加功能管理器来安装。
方法一:通过 Matlab 附加功能管理器安装(最推荐) 这是最无痛的方式,Matlab 会自动处理版本兼容性和路径问题。
- 在 Matlab 命令窗口中,点击顶部菜单栏的 '附加功能' -> '获取附加功能'。
- 在打开的附加功能资源管理器中,搜索 'MinGW-w64'。
- 你应该会找到由 MathWorks 官方提供的 'MATLAB Support for MinGW-w64 C/C++ Compiler'

