Qt5.14下生成动态链接库并调用动态链接库笔记

一、目的

一直在调用他人生成或官网的dll动态链接库,咱得自己会生成动态链接库,因此动态链接库生成笔记以此备忘

二、版本

window10+QT5.14+Mingw64-bit

三、创建库项目

1.新建库项目

在这里插入图片描述

2.选择qmake

在这里插入图片描述

3.选择 QT module默认Core

Qt老版本还需要选择其他的widget和QtgGui模块
在这里插入图片描述

4.选择Kits部件

默认MSVC2017 32bit
在这里插入图片描述

5.根据所需配置项目MinGW 64-bit

在这里插入图片描述

6.选择构建目录

取消Shadow build“√”,生成的dll将在工程目录下

四、创建调用动态库应用工程

1.新建普通应用工程

在这里插入图片描述

2.复制上面刚生成的dll、xx.h及xx_global.h到当前工程中

右击项目根目录添加刚复制过来的.h文件添加到项目树中
在这里插入图片描述

3.导入到pro文件中

右击项目根目录,选择添加库
在这里插入图片描述

4.选择外部库

在这里插入图片描述

5.选择复制过来的动态库

可取消为debug版本添加‘d’
在这里插入图片描述

6.查看pro文件查看添加

添加完成xx.pro文件会多出如下代码

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../BuildLib/ -lBuildLib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../BuildLib/ -lBuildLibd
INCLUDEPATH += $$PWD/../BuildLib
DEPENDPATH += $$PWD/../BuildLib

7.main函数调用动态库

    BuildLib l;//动态库类
    l.helloWorld();//类方法打印helloworld

8.运行效果

在这里插入图片描述

附录

1、动态库BuildLib_global.h

#ifndef BUILDLIB_GLOBAL_H
#define BUILDLIB_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(BUILDLIB_LIBRARY)
#  define BUILDLIB_EXPORT Q_DECL_EXPORT
#else
#  define BUILDLIB_EXPORT Q_DECL_IMPORT
#endif
#endif // BUILDLIB_GLOBAL_H

2、动态库buildlib.h文件

#ifndef BUILDLIB_H
#define BUILDLIB_H
#include "BuildLib_global.h"
#include <QDebug>
class BUILDLIB_EXPORT BuildLib
{
public:
    BuildLib();
    void helloWorld();
};
#endif // BUILDLIB_H

3、动态库类实现文件

#include "buildlib.h"
BuildLib::BuildLib()
{
}
void BuildLib::helloWorld()
{
    qDebug()<<"hello world";
}

4、调用工程之主函数文件

#include "widget.h"
#include <QApplication>
#include "buildlib.h"
#include "BuildLib_global.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //Widget w;
    //w.show();
    BuildLib l;
    l.helloWorld();
    return a.exec();
}

总结

据说使用动态链接库方式修改应用类,减少大的改动吧

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值