当前位置:网站首页>【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
文件放入程序编译后的文件夹中,才能正常运行程序。
边栏推荐
猜你喜欢
2021年12月电子学会图形化四级编程题解析含答案:新冠疫苗接种系统
新一代网状网协议T-Mesh无线通信技术优势介绍
2021年12月电子学会图形化一级编程题解析含答案:放学
NodeJs - cross domain
劲爆!协程终于来了!线程即将是过去式
一通骚操作,我把SQL执行效率提高了10000000倍!
leetcode: 899. Ordered Queue [Thinking Question]
How to play deep paging with hundreds of millions of data?Compatible with MySQL + ES + MongoDB
STM32 GPIO LED和蜂鸣器实现【第四天】
Three key expectations for the crypto market in August Price moves north?Still expected to be in turmoil
随机推荐
2021年12月电子学会图形化四级编程题解析含答案:森林运动会
土耳其国防部:联合协调中心将对首艘乌克兰粮船进行安全检查
Neural networks, cool?
如何用二分法搜索、查找旋转数组中是否含有某个(目标)值? leetcode 81.搜索旋转排序数组
2021年12月电子学会图形化三级编程题解析含答案:数星星
【Unity入门计划】基本概念(7)-Input Manager&Input类
JS基础--判断
2021年12月电子学会图形化二级编程题解析含答案:绘制多边形
8月份加密市场的三个关键预期 价格虽向北移动?预计仍将处于动荡之中
小熊派——无线联网开发
产品以及研发团队有使用专业的办公软件,如禅道、蓝湖等,他们应该如何使用 Tita 系统?
leetcode: 899. Ordered Queue [Thinking Question]
nodeJs--跨域
Yii2安装遇到Loading composer repositories with package information
劲爆!协程终于来了!线程即将是过去式
泰山OFFICE技术讲座:段落边框的绘制难点在哪里?
新版本的 MaxCompute 中,SQL支持的 LIMIT OFFSET 的语法是什么功能?
【899. 有序队列】
使用虚幻引擎自动化工具实现自动化部署
上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB