当前位置:网站首页>【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
文件放入程序编译后的文件夹中,才能正常运行程序。
边栏推荐
猜你喜欢
技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris
49 万奖金等你来拿!第四届实时计算 Flink 挑战赛启动,Beyond Stream Processing!
如何将二维空间先验注入到ViT中? UMA&港理工&阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...
Small Tools(4) 整合Seata1.5.2分布式事务
参与便有奖,《新程序员》杂志福利来袭!
ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
方舟开服教程win
A new round of competition for speech recognition has started. Will natural dialogue be the next commanding height?
NodeJs - cross domain
人脸识别损失函数的汇总 | Pytorch版本实现
随机推荐
2021年12月电子学会图形化四级编程题解析含答案:森林运动会
JS handwritten call apply bind (detailed) (interview)
Flink作业调度详解
美国国防部更“青睐”光量子系统研究路线
分布式系统与微服务的区别
opencv 读取和写入路径有汉字的处理方法
出海季,互联网出海锦囊之本地化
扩展欧几里得求逆元实例
新版本MaxCompute 的SQL支持 UDF 分区裁剪的逻辑是怎样的?
PWA 应用 Service Worker 缓存的一些可选策略和使用场景
AI也有健忘症?英国41岁教授专访:解决灾难性遗忘
简介undo log、truncate、以及undo log如何帮你回滚事物?
爬虫注意
实习路途:记录给我的第一个实习项目中的困惑
Optimal Power Flow (OPF) for High Voltage Direct Current (HVDC) (Matlab code implementation)
2021年12月电子学会图形化四级编程题解析含答案:新冠疫苗接种系统
随笔-Unity中一个简易的Spine动画控制器
DC-DC 2C(40W/30W) JD6606SX2退功率应用
2021年12月电子学会图形化一级编程题解析含答案:放学
劲爆!协程终于来了!线程即将是过去式