今天简单将学习到qt创建dll并调用使用,在这里简单记录一下。
一 Qt创建dll
打开QtCreator创建一个新的Library项目,C++库
创建共享库 名称就起了一个叫做mydll
选择编译器,默认就好
选择需要的模块,默认就已近勾选了QtCore,这里如果还有需要其它模块的话按需勾选。
这个是创建好工程后,项目的结构。在.pro 中 template = lib,库文件
在mydll_global.h文件中,有个宏Q_DECL_EXPORT,此宏标记用于共享库导出的符号。如不想要这个mydll_global.h文件,就把文件中框选的内容,复制到mydll.h中,随后可将mydll_global.h删除。
在mydll.h将 #include “mydll_global.h” 删除,
添加要实现函数的声明 mydll.h
函数实现mydll.cpp
(我用的是MinGW 32bit的构建套 )编译运行后,会弹出一个框,可以忽略它
在生成的Debug目录下有三个文件分别是 libmydll.a mydll.dll mydll.o ;其中,.dll是在Windows下使用的,.o是在Linux/Unix下使用的。
二 Qt调用dll
在新建立一个工程,测试生成的dll
将mydll.h文件和在Debug生成的 mydll.dll 这两个个文件复制到testMydll源代码目录下
将mydll.h文件添加到头文件中
很重要的一步,将mydll.dll加入到.pro文件中,设置对dll引用的路径
**LIBS += “E:/Projects/QtProject/testMydll/mydll.dll” **
在main文件中添加对mydll.h的引用
编译运行,在生成的Debug目录下将mydll.dll复制进去
再次运行,可以看到应用程序的输出
前面使用mydll.dll路径的时候使用的是绝对路径,可以修改为相对路径。
即可由LIBS += “E:/Projects/QtProject/testMydll/mydll.dll” 更改为
LIBS += $$PWD/mydll.dll 是相对.pro目录下的相对路径。
三 小结
1 、最重要的是在.pro中添加对dll的路径的配置
2、使用dll时需要将dll的头文件导入,使用include包含