最近在调试一个基于S-Function的小例子,期间遇到了几个问题,后解决了,和大家分享一下。
1、使用C MEX S函数编程时,如果想在程序中调用通过C++编译的Lib库(即是以类的形式封装的),需要使用模板sfun_cppcounter_cpp.cpp,而不要使用模板sfun_counter.cpp,否则会提示错误;
我查了几个英文资料,资料上有很多说法,归纳起来,可能是有两个原因:
一是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