MATLAB 找不到编译器?MinGW-w64 C/C++环境配置与验证
最近在尝试用 MATLAB 调用一些 C/C++ 写的算法库,或者想编译一个别人分享的 .mex 文件时,经常在命令行里敲下 mex -setup 后,遇到报错窗口提示 "未找到支持的编译器或 SDK"。这几乎是每个 MATLAB 用户进阶路上的必经之坎。问题的核心,往往不在于 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++ 编译工具链。从 R2016b 开始,MathWorks 停止提供免费的 Visual Studio 编译器支持,转而推荐用户使用免费的 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',点击安装即可。该插件会自动处理版本兼容性和路径问题,无需手动配置环境变量。安装完成后,在命令行运行
mex -setup即可确认编译器已就绪。

