zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【QT】Qt 给已经开发好的程序快速封装成动态库

Qt封装程序开发 快速 动态 已经
2023-09-11 14:16:59 时间

前两篇博客:

1、不带ui界面的动态库的生成与调用
2、带ui界面的动态库的生成与调用

如果是已经开发好的工程或项目,想要封装成动态库,如何更加快速便捷:

例如:QT项目工程

如何给该项目工程封装快速封装成动态库呢?

1、修改配置文件

#TEMPLATE = app

TEMPLATE = lib

DEFINES += RECDATA_LIBRARY

在这里插入图片描述
2、新建一个头文件recdata_global.h,并添加如下代码

#include <QtCore/qglobal.h>

#if defined(RECDATA_LIBRARY)
#  define RECDATASHARED_EXPORT Q_DECL_EXPORT
#else
#  define RECDATASHARED_EXPORT Q_DECL_IMPORT
#endif

在这里插入图片描述
3、引入头文件,修改导出类定义

#include "recdata_global.h"

class RECDATASHARED_EXPORT RecData : public QWidget

在这里插入图片描述

#include "recdata_global.h"

class RECDATASHARED_EXPORT showData : public QWidget

在这里插入图片描述
4、重新构建、运行
在这里插入图片描述
5、若是 MinGW32 编译器,在编译之后会在文件夹下找到 ***.dll***.a 文件;若是 MSVC 编译器,则应该是 ***.dll***.lib

在这里插入图片描述

6、调用
在使用该库的程序中,新建一个 include 文件夹 和 一个lib 文件夹,将 导出类的头文件 复制进include文件夹中,将编译生成的***.lib文件复制到lib文件夹中,然后在程序中引入该头文件即可。

INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib -lRecData

在编译之后,将不同模式编译下的dll文件放入程序编译后的文件夹中,才能正常运行程序。