WIN8.1下Qt调用MATLAB engine

标签:
qtmatlab混合编程 |
WIN8.1下Qt调用MATLAB engine
环境说明
1.
2.
3.
4.
说明:在本文档中调用matlab engine的教程是在QT Creator编译环境下,并不是在MSVC2013环境下进行。
关于MSVC2013下的QT,使用过程应该与MSVC2013 编写的32位控制台程序一样(没有做过测试),见链接
http://blog.sina.com.cn/s/blog_89a45b020102vrr1.html
IDE平台搭建
1.
a)
b)
2.
a)
b)
c)
http://s4/mw690/002whnmqzy6T8MIxlbd43&690engine" TITLE="WIN8.1下Qt调用MATLAB
图1 选择合适的QT版本
http://s9/mw690/002whnmqzy6T8MHOnu848&690engine" TITLE="WIN8.1下Qt调用MATLAB
图2 选择安装的项目
Qt调用matlab engine的设置
1.
2.
INCLUDEPATH += C:\MATLAB\R2014a\extern\include LIBS += C:\MATLAB\R2014a\extern\lib\win64\microsoft\libeng.lib LIBS += C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmat.lib LIBS += C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmx.lib LIBS += C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmex.lib |
3.
INCLUDEPATH += $$quate(C:\MATLAB\R2014a\extern\include) LIBS += $$quate(C:\MATLAB\R2014a\extern\lib\win64\microsoft\libeng.lib) LIBS += $$quate(C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmat.lib) LIBS += $$quate(C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmx.lib) LIBS += $$quate(C:\MATLAB\R2014a\extern\lib\win64\microsoft\libmex.lib) |
测试例程
1.
2.
例程如下:C:\MATLAB\R2014a\extern\examples\eng_mat\engdemo.c
3.
http://s6/mw690/002whnmqzy6T8MGD2D365&690engine" TITLE="WIN8.1下Qt调用MATLAB
图3
Matlab engine API介绍
这里不做过多重复介绍,给出几个参考地址吧
1.
2.
其它问题
1.
如果程序编译通过,运行matlab时无法加载,可能是matlab的破解不够彻底,可以到网上找一下破解包,关于matlab编译器mcc的破解。直接给出下载地址:
链接:http://pan.baidu.com/s/1gdzNBxx
密码:jqm5
2.
3. QT应用发布时,打开exe文件,可能提示缺少dll文件,有两个解决办法
a)针对编译此应用的计算机而言,将所依赖的dll文件所在的目录添加到环境变量中,通常都在这个目录下“C:\Qt\Qt5.4.2\5.4\msvc2013_64\bin”。
b)针对没有安装QT的其它计算机而言,需要将所依赖的dll文件都复制到exe文件的根目录下即可。
4. 解决1的问题后,对于提示缺少matlab的dll文件,方法与1类似,但前提是等运行应用的计算机上需要提前安装matlab,否则没有matlab engine