1. 首先新建一个工程(该篇文章共有两个不同的工程,注意区分,一个是有UI界面的,一个是没有UI界面的)
2.接下来选择库模板
3.选择共享库,取个该动态链接库的名字,下一步
4.继续下一步,到Modules界面,默认选择QtCore(QtCore模块提供核心的非图形用户接口功能,所有其他Qt模块都依赖于这个模块,如果您使用qmake来构建您的项目,则默认将QtCore包含在内,详情请访问 https://blog.csdn.net/u012309854/article/details/77680116)。
相信,大部分人封装动态链接库的时候是不需要将界面封装的,只需要封装核心代码,故我们在此不选择QtGui。但如果需要将图形界面一起封装,就需要选择该项,如下结果。
5.继续下一步,直到点击完成。
6.点击项目,勾掉Shadow build,使.dll不生成在debug目录中,生成在我们自己创建的目录下面,方便查找和使用。
7.在.pro文件中,添加如下代码
DESTDIR =..\MyDebug
使生成的.dll文件放在该目录下,自动创建该目录。
8.点击运行,即可生成。(此弹框不用管它,代表编译成功,已生成文件)
9.调用方法有两种:
(1)在.pro文件中,添加如下代码,并将Save_Data.h 添加到工程项目中(这步应该都会,添加现有文件),需要用到该动态链接库的地方就 #include 进去。需要注意的一点就是:需要把以上生成的文件放置到生成的E:\cpptest\build-test_dll-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug 目录下。
LIBS += libgdi32#这个也不能少。少了会出错
win32:LIBS += "E:/cpptest/MyDebug/Save_Data.dll"
win32:LIBS+= -LE:/cpptest/MyDebug/ -lSave_Data
(2)在.pro文件中,添加如下代码,并将Save_Data.h 文件放置在与工程文件同目录文件中,需要用到该动态链接库的地方就 #include 进去。比如我的,看图一目了然:
DESTDIR =..\MyDebug
INCLUDEPATH +=../camara
LIBS += -L$$DESTDIR -lcamara
另外,再粘贴一个测试成功的链接,按照该方法也是能成功的,就是稍微复杂一点
---------------------
原文:https://blog.csdn.net/u011236602/article/details/80835575