前两篇博客:
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
文件放入程序编译后的文件夹中,才能正常运行程序。