问题现象
在学习S-func
tion时,需要编译C语言写的S函数。使用mex编译时提示出错。
1. >> mex -setup
2. 错误使用 mex
3. 未找到支持的编译器或 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路径。
3,设置环境变量。
>> setenv('MW_MINGW64_LOC', 'C:TDM-GCC-64')
或者设置windows的系统变量:
Win10的设置方法为:此电脑=》属性,打开“系统属性”对话框:
验证结果
现在,重启MATLAB,再执行mex命令,可以找到编译器了:
>> 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
|