Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器

问题现象

在学习S-function时,需要编译C语言写的S函数。使用mex编译时提示出错。

>> mex -setup
错误使用 mex
未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2016a/win64.html。

 

原因分析

未找到支持的编译器或 SDK。

 

解决措施

安装MinGW-w64 C/C++ 编译器。

一、什么是 MinGW-w64 ?
MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。

正因为如此,MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本,而 MinGW-w64 内置的 GCC 则更新到了 6.2.0 版本。

 

1,下载MinGW-64

下载地址:

http://tdm-gcc.tdragon.net/download

根据windows是32位还是64位,选择对应的安装包,下载并安装。

默认安装在C盘。

 

2,将MinGW安装路径下的bin目录添加到Matlab路径。

Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器_第1张图片

 

3,设置环境变量。

>> setenv('MW_MINGW64_LOC', 'C:\TDM-GCC-64')

 

或者设置windows的系统变量:

Win10的设置方法为:此电脑=》属性,打开“系统属性”对话框:

Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器_第2张图片

Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器_第3张图片

 

 

验证结果

现在,重启MATLAB,再执行mex命令,可以找到编译器了:

Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器_第4张图片

>> mex -setup
MEX 配置为使用 'MinGW64 Compiler (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
    包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
     您需要更新代码以利用
     新的 API。您可以在以下网址找到相关详细信息:
     http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中选择一种命令:
 mex -setup C++ 
 mex -setup FORTRAN

 

你可能感兴趣的:(Matlab mex -setup 找不到编译器:为MATLAB安装MinGW64 Compiler编译器)