QT,matlab混合调试,MATLAB生成DLL,将多个m文件合并生成一个DLL

本文介绍了在QT项目中调用MATLAB算法,通过生成DLL进行混合调试的过程。作者分享了遇到的挑战,如QT版本限制、MATLAB与QT位数一致性的需求,以及不同MATLAB版本DLL的兼容性问题。文中提到了关键步骤,包括MATLAB配置为支持VS2008,创建并编译M文件为DLL,以及在QT中调用DLL的注意事项,强调了DLL、lib和头文件的位置以及初始化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近再做一个项目。用qt有好的界面调用MATLAB已经写好的算法,亲自踩了很多的坑,在这里分享一下:

1,混合调试有两种方法,比较主流的就是调用MATLAB生成的DLL,进行联调;

2,调用MATLAB自身引擎的方法,进行联调;

自认为调用MATLAB引擎的方式,在运行QT的时候蹦出来MATLAB的界面,会比较尴尬,最终选择了生成DLL的方法。看着网上的教程,以为会很简单,但是这样简单的东西我也弄了两天才搞定,首先困难在于我的QT版本限制,详细的教程手写了一份Word版的,简单明了;解绝了多个M文件生成一个DLL。

基于MATLAB2105a和VS2008联调,MATLAB生成DLL教程:

①将配置好环境,MATLAB默认支持的版本都是VS2010以上的,需要进行扩展:将以下两个文档拷到MATLAB安装路径下matlab\R2016\bin\win64\mexopts.

②启动配置:在命令窗口输入:mex-setup:'C:\Program Files\MATLAB\R2016a\bin\win64\mexopts\msvcpp2008.xml' C++

mbuild -setup:'C:\ProgramFiles\MATLAB\R2016a\bin\win64\mexopts\msvcpp2008.xml' C++

可以看到编译器已经支持VS2008

③接下来就可以新建一个m文件,随便写入一个函数,给个例子:

保存,命名可以如上。

④在命令控制行输入:mcc -Wcpplib:libadd -T link:lib myFunc.m,等待几分钟,运行完毕DLL就已经生成完毕!

3,我们实验室的QT版本限制在4.8.1,对于QT4.x.x的版本只提供了32位的,然而MATLAB与qt联调,位数是一定要一致的,这个大家要注意,本宝宝就是安装了无数次卸载了无数次。

4,还有一个坑,就是我的工程完成之后各种功能也实现了,把程序拷到别人的电脑上,忽然不能用,很是泪奔

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值