MATLAB生成dll库并在Qt中调用及参数设置

您所在的位置:网站首页 mfc调用qt生成的dll MATLAB生成dll库并在Qt中调用及参数设置

MATLAB生成dll库并在Qt中调用及参数设置

2024-03-20 00:59| 来源: 网络整理| 查看: 265

导航 Matlab生成dll并在Qt中调用Matlab生成dllQt调用生成的dlldll库输入输出参数使用时的心得参考链接

Matlab生成dll并在Qt中调用

手动将Matlab算法转成C++费时费力,同时matlab coder生成的C/C++代码非常复杂,为了提高开发效率,可以使用Matlab生成动态库dll,然后在Qt中调用。

Matlab生成dll 首先确定要转换的.m文件是一个有输入输出的完整函数,所有依赖的第三方库函数最好都放到这个文件中,使用一个main.m文件调用这个函数可以顺利运行,大致结构如下 function [outA, outB] = calcOne(a, b,c) %主函数体 .m文件同名函数 end function [x] = ls(aa, bb) % 用到的其他函数 end 配置mingw编译器,去matlab官方网站查找对应的mingw版本,链接: matlab版本对应的mingw版本mingw下载链接 或者早期版本matlab对应的mingw链接安装mingw到自己知道的目录中(目录中最好不要有空格和中文),然后配置系统环境变量,将MinGW-w64中“bin”文件夹所在的位置添加到系统环境变量的路径即可,参考步骤将mingw的路径添加到matlab的环境变量中,matlab命令行输入 setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’) % 路径按自己的改 mex -setup C++

显示如下表示成功 结果

在matlab命令行中输入deploytool命令,选择Library Compiler选项 MATLAB Complier

选择C++ Shared Library,点击右侧加号按钮,选中需要生成dll库的源文件,最后点击Package选项生成dll文件 生成dll

在生成的文件目录中,转到for_redistribution_files_only目录,可以看到生成的dll文件,拷贝*.dll、.h,.lib文件到qt工程目录下。

至此,dll库制作完成

Qt调用生成的dll 在Qt的pro文件最后配置matlab的相关库函数 INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/include' INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/include/win64' win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmex win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmx win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmat win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibeng win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -lmclmcr win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -lmclmcrrt INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64' DEPENDPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64' INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64' DEPENDPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64' INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/microsoft' DEPENDPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/microsoft' ***F:/Program Files/MATLAB/R2021b/*** 换成自己的Matlab路径 添加.h头文件,将动态库的.h文件添加到项目中添加动态库,将动态库文件添加到项目中,项目文件夹-添加库-外部库-点击库文件选择,取消无用平台勾选,取消windows-为debug版本添加‘d’作为后缀,点击下一步添加初始化调用的dll库,在需要调用这个外部库的文件中添加.h头文件,在这个类的构造函数中添加上这样的语句 // 这个calcOne是库函数的名字,按需求改 if(calcOneInitialize()) { qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3