当前位置:网站首页>【QT】Qt 给已经开发好的程序快速封装成动态库
【QT】Qt 给已经开发好的程序快速封装成动态库
2022-08-03 15:49:00 【Cappuccino-jay】
前两篇博客:
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文件放入程序编译后的文件夹中,才能正常运行程序。
边栏推荐
- 人脸识别损失函数的汇总 | Pytorch版本实现
- leetcode: 899. Ordered Queue [Thinking Question]
- leetcode:899. 有序队列【思维题】
- 如何将二维空间先验注入到ViT中? UMA&港理工&阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...
- 如何用二分法搜索、查找旋转数组中是否含有某个(目标)值? leetcode 81.搜索旋转排序数组
- 字典表(还需要输入2个字)
- 用友YonSuite与旺店通数据集成对接-技术篇2
- js数组方法总结
- JS handwritten call apply bind (detailed) (interview)
- 8月份加密市场的三个关键预期 价格虽向北移动?预计仍将处于动荡之中
猜你喜欢
随机推荐
Phaser(二):小恐龙跑酷游戏
深度学习GPU最全对比,到底谁才是性价比之王?
如何将二维空间先验注入到ViT中? UMA&港理工&阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...
DC-DC 2C (40W/30W) JD6606SX2 power back application
出海季,互联网出海锦囊之本地化
2021年12月电子学会图形化三级编程题解析含答案:分身术
神经网络,凉了?
【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
JD6606SP5_JD6606SSP_JD6606SASP_JD6621W7百盛新纪元授权代理商
DC-DC 2C(40W/30W) JD6606SX2退功率应用
方舟开服工具、服务器教程win
No inner demons, to dry!SQL optimization and diagnosis
Go Go 简单的很,标准库之 fmt 包的一键入门
Reptile attention
GTK实现旋转加载动画
指令重排以及案例
How Navicat connects to MySQL on a remote server
After the cnpm installation is successful, the prompt is not an internal and external command, nor is it a runnable command solution
证实了,百度没有快照了
实习路途:记录给我的第一个实习项目中的困惑









