Matlab 2015b 调用C代码: 运行mex -setup报错 No supported compiler or SDK was found

问题:找不到MinGW-w64编译器

出现原因:MATLAB与编译器安装的顺序不对,如果先安装的matlab,后安装的编译器,便容易出现这种错误。

参考链接:https://ww2.mathworks.cn/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler

解决方案:

1.下载MinGW GCC 4.9.2

链接:https://pan.baidu.com/s/1jHB3k8rHrpuvdMUTphC8cw 
提取码:en77

原链接:https://zh.osdn.net/projects/sfnet_tdm-gcc/downloads/TDM-GCC%20Installer/Previous/1.1309.0/tdm64-gcc-4.9.2-3.exe/


2.安装注意事项

参考链接:https://ww2.mathworks.cn/help/matlab/matlab_external/install-mingw-support-package.html

3.设置环境变量

临时设置:

MATLAB在命令窗口输入>> setenv('MW_MINGW64_LOC','E:\mingw-64\mingw32')

长期生效:

  1. 点击计算机>选择系统属性 >高级系统设置>高级选项卡

  2. 单击环境变量>系统变量>选择新建.

  3. 在新建系统变量中,输入MW_MINGW64_LOC 变量名称。路径为 E:\mingw-64\mingw32

4.验证环境

matlab命令窗口输入>> mex -setup

选择C++或者C编译都可以

5.调用C代码

参考文章:https://blog.csdn.net/wislon/article/details/78777298

 1) 语法:

函数的形式必须是
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
nlhs:输出参数个数
plhs:输出参数列表
nrhs:输入参数个数
prhs:输入参数列表
,不过函数名可以随便取的。注意:保存的文件名就是将来在MATLAB中调用的函数名,而不是这里的函数名。

 

2)写一个add.c文件

#include "mex.h"
//author zhuwl
//test matlab use C function


void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    mexPrintf("OK!/n");
}

3) 把add.c拷贝到%matlab安装根目录%MATLAB\R2015b\bin

4) 调用效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值