标签:env 有一个 abc 名称 function extern 操作 说明 ble
下载编译器MinGW64,对于64位系统而言,需要下载个安装器,可以安装相应版本的gcc编译器,我选择的是gcc-4.9.4,在测试环境中可以正常运行
验证一下:
setenv(‘MW_MINGW64_LOC‘,‘C:\mingw64‘) % 先配置环境哦
mex -setup
输入如下图所示:
这样MinGW编译器就配置好了。
setenv(‘MW_MINGW64_LOC‘,‘C:\mingw64‘)
myFunctionName = ‘SFunctionName‘
def = legacy_code(‘initialize‘);
def.SFunctionName = myFunctionName ;
% 注意,输入和输出的变量的名称只能是u1,u2...和y1,y2...
def.OutputFcnSpec = ‘double y1 = add_2(double u1, double u2)‘;
% 设置用到的头文件或者源文件
def.HeaderFiles = {‘add_2.h‘};
def.SourceFiles = {‘add_2.c}
def.InitializeConditionsFcnSpec = ‘buffer_init()‘;
legacy_code(‘sfcn_cmex_generate‘, def);
legacy_code(‘compile‘, def) ;
以上脚本可以在MATLAB中快捷编译,并且生成Simulink可用的文件,在Simulink中加入S-Function模块,并且将名字设置为"add_2"即可。
add_2.c就可以直接写一个两个数相加的程序验证一下就好了; add_2.h写个函数声明也就可以了。
// add_2.c
#include "add_2.h"
double add_2(double a, double b){
return a + b ;
}
// add_2.h
#ifndef ADD_2_H
#define ADD_2_H
double add_2(double a, double b);
#endif
Windows的MATLAB中用C语言写SFunction的一些坑
标签:env 有一个 abc 名称 function extern 操作 说明 ble
原文地址:https://www.cnblogs.com/NJdonghao/p/9283548.html