qt的动态链接库生成、使用,还夹带一些pro文件的使用。

6 篇文章 0 订阅
2 篇文章 0 订阅

动态库生成:

首先:

1、【新建工程】按图选择【库】新建【c++库】

然后填写你想要生成的库的名字。

完成后会出现两个头文件和一个资源文件。

我们看下global.h文件

#ifndef T_DLLLOAD_GLOBAL_H
#define T_DLLLOAD_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(T_DLLLOAD_LIBRARY)
#  define T_DLLLOADSHARED_EXPORT Q_DECL_EXPORT
#else
#  define T_DLLLOADSHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // T_DLLLOAD_GLOBAL_H
Q_DECL_EXPORT 】是说你将要导出给别人使用的api,【 Q_DECL_IMPORT 】就不清楚了。

那【T_DLLLOAD_LIBRARY】是在哪里定义的呢,在.pro 文件。我们看下.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2014-06-14T14:12:25
#
#-------------------------------------------------

QT     +=widgets

TARGET = t_dllLoad
TEMPLATE = lib

 DESTDIR = $$_PRO_FILE_PWD_/../mlib

DEFINES += T_DLLLOAD_LIBRARY

SOURCES += printhellodll.cpp

HEADERS += printhellodll.h\
        t_dllload_global.h

unix {
    target.path = /usr/lib
    INSTALLS += target
}
看到【 DEFINES += T_DLLLOAD_LIBRARY 】没,恩,就是这货,DEFINES就相当于我们在头文件【#defineT_DLLLOAD_LIBRARY】,不过DEFINE是全局定义,就是说整个工程会识别到。

【TEMPLATE】呢,就是设置你这个工程是拿来干啥的,

【TEMPLATE = app】是普通的可执行程序项目,会自动需要main()函数入口执行。

【TEMPLATE = lib】是库生成说明,构建以后会生成动态库(额,如果我要生成静态库呢?)

【TEMPLATE  =subdirs】 这个是生成一个总工程用的,很多个子工程来一起编译,方便管理,你如果去看qt的例子,很多都是用这个统一管理的。用法是例如下边这样

TEMPLATE = subdirs

SUBDIRS = \
    dir\
    hahah11 \
   #如果子工程pro文件和上边不一样还可以这样设置
   dirrrr.file = haha/haha.pro

 
 

[ DESTDIR = $$_PRO_FILE_PWD_/../mlib ]这货设设置生成路径的,【_PRO_FILE_PWD_】是当前pro文件的路径,你按f2看下就知道了。【$$】是取值。

好叻,差不多了。记住你要导出的每一个函数,它的声明都要加上【T_DLLLOADSHARED_EXPORT】或者【Q_DECL_EXPORT】,类也是要加的,不过它的成员就不用了。


、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

动态库的导入:






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值