> 文章列表 > MATLAB函数封装1:生成QT可以调用的.dll动态链接库

MATLAB函数封装1:生成QT可以调用的.dll动态链接库

MATLAB函数封装1:生成QT可以调用的.dll动态链接库

在进行相关算法的开发和设计过程中,MATLAB具有特别的优势,尤其是对于矩阵运算的处理,具有很多现成的方法和函数可以进行调用,同时MATLAB支持把函数封装成不同的语言方便完成算法的集成。
这里记录利用MATLAB封装成C++动态链接库,需要用的环境、注意事项和封装过程中的技巧。

  1. 要想进行函数的封装过程,首先需要MATLAB的app扩展包,这里给出下载好的安装包,用MATLAB打开后可以直接进行安装,这个是安装的编译器,此安装过程不需要卸载已经安装好的MATLAB,重新安装。
    这里是百度云下载地址
    链接:https://pan.baidu.com/s/1AgXnmExI5Bcl9Zezkko7qA
    提取码:azrz
    –来自百度网盘超级会员V4的分享

  2. 封装完成的动态链接库想要在QT中进行调用,需要注意所选择的编译器要和QT中使用的编译器保持一致,

  3. 在封装函数的时候,为了防止不确定所选择的编译器,可以输入指令:

>> mbuild -setup C++
MBUILD 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。要选择不同的 C++ 编译器,请从以下选项中选择一种命令:
MinGW64 Compiler (C++)  mex -setup:C:\\Users\\sen\\AppData\\Roaming\\MathWorks\\MATLAB\\R2020a\\MBUILD_C++_win64.xml C++ -client MBUILD
MinGW64 Compiler with Windows 10 SDK or later (C++)  mex -setup:D:\\Polyspace\\R2020a\\bin\\win64\\mexopts\\mingw64_g++_sdk10+.xml C++ -client MBUILD

本人使用的时候点击勾选第一个
然后会出现

MBUILD 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。
  1. 在很多时候,调用MATLAB函数是为了处理矩阵数据或者应用特殊算法,为了减少qt中的矩阵处理过程,可以相应的把MATLAB中简单的矩阵变换等也封装成自己的函数进而生成.dll的动态链接库,这样就可以在qt中进行调用使用。如MATLAB中的reshape函数,卷积函数,转置函数等。

  2. 自己编写的.m函数文件可以封装,同样的对于MATLAB自带的函数也可以进行封装,也可以正常调用,同时对于调用自己的函数的嵌套函数,只要在同一个文件夹下,是可以识别后整体进行封装的,不影响使用过程。

  3. 使用deploytool进行封装就可以,不必使用
    MATLAB函数封装1:生成QT可以调用的.dll动态链接库
    下面这种就可以了,这种生成的文件较少,使用起来也很方便,
    MATLAB函数封装1:生成QT可以调用的.dll动态链接库

  4. 总结起来就是只有要函数就可以封装成C++的动态链接库。