首页 > 其他分享 >Matlab编译生成DLL,供QT调用

Matlab编译生成DLL,供QT调用

时间:2023-02-03 16:24:13浏览次数:42  
标签:Files QT R2022a quote DLL Program Matlab extern MATLAB

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

相关文章

  • MATLAB-常见命令使用
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • MATLAB-M文件
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 强制去掉Qt的运行环境信息
    基于Qt6开发的应用程序会依赖libQt6Core.so.6,动态库so文件中包含有运行环境信息,包含有运行所需的linuxkernel最低版本,可通过objdump工具查看。在Docker环境中,glibc的版本......
  • Qt Creator9.0生成工程后没有.pro文件
    QtCreator9.0默认建立的widget项目只有CMakeLists.txt文件,没有pro文件发现生成工程文件时默认选择的是cmake,不是qmake导致的这个问题,将Builldsystem中转化成qmake之后......
  • Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择|附代码数据
    全文下载:http://tecdat.cn/?p=22319最近我们被客户要求撰写关于PLS的研究报告,包括一些图形和统计输出。本文建立偏最小二乘法(PLS)回归(PLSR)模型,以及预测性能评估。为了建立......
  • m基于16QAM的自适应波束形成matlab仿真
    1.算法描述16QAM全称正交幅度调制是英文QuadratureAmplitudeModulation的缩略语简称,意思是正交幅度调制,是一种数字调制方式。产生的方法有正交调幅法和复合相移法。波束......
  • m基于GA遗传算法的电动汽车有序充电控制策略matlab仿真
    1.算法描述首先介绍MATLAB部分的遗传算法的优化算法介绍:遗传算法的原理遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算......
  • m基于GA遗传算法的电动汽车有序充电控制策略matlab仿真
    1.算法描述 首先介绍MATLAB部分的遗传算法的优化算法介绍:        遗传算法的原理        遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二......
  • m基于16QAM的自适应波束形成matlab仿真
    1.算法描述       16QAM全称正交幅度调制是英文QuadratureAmplitudeModulation的缩略语简称,意思是正交幅度调制,是一种数字调制方式。产生的方法有正交调幅法和复......
  • Matlab-运算符
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......