Matlab S-function调试分享

最近在调试一个基于S-Function的小例子,期间遇到了几个问题,后解决了,和大家分享一下。


1、使用C MEX S函数编程时,如果想在程序中调用通过C++编译的Lib库(即是以类的形式封装的),需要使用模板sfun_cppcounter_cpp.cpp,而不要使用模板sfun_counter.cpp,否则会提示错误;


2、编译C MEX S函数成功后,在simulink的S-Function模块使用过程中,出现错误:“Error while obtaining sizes from MEX S-function”

我查了几个英文资料,资料上有很多说法,归纳起来,可能是有两个原因:

一是MATLAB的版本和其他软件(如VC、VS8等)不匹配;二是因为你使用的模板不正确;


解决方法可能有以下几种:

(1)、拷贝dsp_rt.dll文件到你的mdl目录;

(2)更换编译的模板;

(3)在mdl的选项"Simulation -> Configuration Parameters -> Real-Time Workshop", 中设置"Make command" 参数为make_rtw OPT_OPTS="$(DEFAULT_OPT_OPTS) -DREBUILD_LIBRARIES";

(4)查询软件版本,使其一致;

(5)更换一台新机器。


我是想在程序中调用通过C++编译的Lib库(即是以类的形式封装的),所以使用模板编译,只不过用错了模板才出现了这个错误。

希望能给大家一些帮助,不对之处敬请指正!


谢谢


来自:http://www.ilovematlab.cn/thread-139204-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值