QT 5.15.2
Matlab R2022a
一、使用matlab生成dll
准备好matlab接口
命令行窗口敲入以下命令:
弹出以下对话框
选择Library Compiler
弹出以下对话框
选择C++ Shared library
加入所有依赖的.m文件
点击package按钮
matlab 会为我们编译生成C++ dll
二、使用QT调用matlab生成的dll
.pro文件中加入以下配置
INCLUDEPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/include)
INCLUDEPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/include/win64)
INCLUDEPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft)
DEPENDPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft)
INCLUDEPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64)
DEPENDPATH += $$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64)
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -llibmx
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -llibmat
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -llibmex
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -llibeng
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -lmclmcr
win32: LIBS += -L$$quote(D:/Program Files/MATLAB/R2022a/extern/lib/win64/microsoft) -lmclmcrrt
使用时 需要先调用xxxxInitialize函数用于初始化
double buf[1024];
memset(buf, 0, sizeof(double) * 1024);
mwArray t1(1024, 1, mxDOUBLE_CLASS);
数据保存到buf中
t1.SetData(buf, 1024);
将t1作为参数传入接口中。
未解决的问题:
debug模式下会卡死, release下可以跑通。
标签:Files,QT,R2022a,quote,DLL,Program,Matlab,extern,MATLAB From: https://www.cnblogs.com/merlinzjl/p/17089672.html