搜索
您的当前位置:首页正文

Matlab和QT混合编程

来源:筏尚旅游网

环境 Visual Studio 2017

    Qt 5.13.2 MSVC 2017 64-bit

    Matlab 2019b

注意 matlab2019a不行,原因未知。在运行使用matlab2019a生成的dll时程序直接异常结束。

注意 Qt5.13.2 以及Qt5.14.1 ,如果电脑上的有道词典正在运行则会出现卡死情况。

Matlab生成.dll .lib .h 文件

1   准备好.m文件

2   在matlab中输入 mex -setup C++ 设置编译工具

3   在matlab中输入 deploytool 在图形化界面上进行编译 具体选择如图1所示。

图1 matlab图形化编译界面

4   待编译完成后会生成多个文件夹,只需要文件夹for_redistribution_files_only中的.dll .lib .h 文件。

Qt使用Matlab生成的库文件

1   Qt项目文件夹中新进lib文件夹和include文件夹

2   .h文件放在include文件夹中,.lib和.dll放在lib文件夹中

3   对项目添加库 lib

INCLUDEPATH += E:/Matlab/extern/include

LIBS += -LE:/Matlab/extern/lib/win64/microsoft -lmclmcr

LIBS += -LE:/Matlab/extern/lib/win64/microsoft -lmclmcrrt

LIBS += -LE:/Matlab/extern/lib/win64/microsoft -llibmx

以上即可实现matlab和qt的混合编程。

注意几点: 

1.初始化函数一定要先调用。

2.初始化函数有点耗时。

3.初始化函数只能调用一次,多次调用只有第一次成功。而且一个exe进程只需要初始化一次就行。

4.函数中涉及中文的要转toLocal8bit。

5.大量的警告可以在pro文件中加入DEFINES += QT_DEPRECATED_WARINGS来屏蔽。

参考:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top