matlab R2016a 未找到支持的编译器或SDK 配置MinGW-w64 C/C++ 编译器

系统环境:win7(64bit)+R2016a

1. 错误描述:

在使用matlab编译C程序时,需要用mex来编译写好的C程序,这样才能在matlab中调用,其实编译好的C程序就像动态链接库。

     

                                                   matlab R2016a 未找到支持的编译器或SDK 配置MinGW-w64 C/C++ 编译器_第1张图片  

但是在命令行输入mex -setup 后呈现如下错误:

>> mex -setup

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

2. 按照提示,安装 MinGW-w64即可。

下载网址:https://sourceforge.net/projects/tdm-gcc/

存储位置:                      matlab R2016a 未找到支持的编译器或SDK 配置MinGW-w64 C/C++ 编译器_第2张图片

直接存在C盘根目录下,不要有子目录。matlab中文解释:http://cn.mathworks.com/help/matlab/matlab_external/compiling-c-mex-files-with-mingw.html

上面解释说TDM-GCC-64就像linux中的GCC编译器一样。网上还有许多配置matlab和visual studio的文章,不过好像容易产生问题,而且配置步骤较繁琐,所以先安装TDM-GCC-64能编译再说。

3.安装完后,在matlab命令行:

设置环境变量进入C环境:

>>setenv(‘MW_MINGW64_LOC’,’D:\TDM-GCC-64’)

'D:\TDM-GCC-64'为安装TDM-GCC-64的路径。顺便添一句,最好不要装在C盘下,否则在后期重编译时会出现 cannot open output file mex_model_f_pixel.mexw64: Permission denied 的错误,我就是采雷后换的安装路径。

如果不想每次都设置环境,就直接在系统中添加环境变量即可。变量名:MW_MINGW64_LOC,路径:D:\TDM-GCC-64。然后选择编译语言:

matlab R2016a 未找到支持的编译器或SDK 配置MinGW-w64 C/C++ 编译器_第3张图片

4.编写测试用例并编译运行

新建脚本文件,并保存为hello.c

#include //mex编译需要的头文件
void mexFunction(int nlhs ,mxArray *plhs[] ,int nrhs, const mxArray *prhs[])
{
    mexPrintf("Hello word!, you succeed");
}

在命令行:

>> mex hello.c
使用 'MinGW64 Compiler (C)' 编译。
MEX 已成功完成。

编译hello.c成功,运行:

>> hello()
Hello word!, you  succeed>> 

至此,matlab R2016a配置C编译器完成。

你可能感兴趣的:(matlab,matlab,R2016a,C编译器,MinGW-w64,Permission,denied)