Qt动态链接库的创建和使用
Posted wangbin-heng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt动态链接库的创建和使用相关的知识,希望对你有一定的参考价值。
一、生成dll文件
1、创建一个C++库项目。
新建->Library->C++库,然后点击"choose";
位置->类型,选择共享库;
模块的勾选看情况。
最后,工程中有3个文件。mylib.cpp、mylib.h、mylib_global.h。
2、添加内容,即库文件要实现的功能。
例:1、创建一个ui文件
2、修该mylib.cpp、mylib.h文件
1 #include "mylib_global.h" 2 #include <QDialog> 3 namespace Ui 4 { 5 class Mylib; 6 } 7 class MYLIBSHARED_EXPORT Mylib :public QDialog 8 { 9 public: 10 Mylib(QWidget *parent = 0); 11 private: 12 Ui::Mylib *ui; 13 };
1 #include "mylib.h" 2 #include "ui_mylib.h" 3 Mylib::Mylib(QWidget *parent): 4 QDialog(parent), 5 ui(new Ui::Mylib) 6 { 7 ui->setupUi(this); 8 }
3、构建工程,在生成的debug目录中可以看到生成的3个,即.a、.o和.dll文件。
二、调用dll文件
1、修改准备调用dll‘文件的工程的配置文件.pro
#让本项目可以找到mylib.h和mylib_global.h这两个文件
INCLUDEPATH += ../mylib
#这一行则需要告诉编译器(注意,这里是编译器!)到哪里去找到这个 dll 文件
#LIBS += ../build-mylib-Desktop_Qt_5_9_3_MinGW_32bit-Debug/debug/mylib.dll
2、将之前的dll文件放到本工程的源码目录下并加上头文件#include "mylib.h",即可调用连接库。
3、构建工程,将之前的dll文件放到生成的exe的同级目录下,然后程序即可运行。
附:1、在构建第一个工程的时候,可以在弹出的一个对话框中修改dll等文件的生成目录;我们可以新建目录bin_debug,将2个工程的生成文件都放到其中。
2、似乎可以#include "../bin_debug/mylib.h"
以上是关于Qt动态链接库的创建和使用的主要内容,如果未能解决你的问题,请参考以下文章
使用动态链接在 Linux 上为 Windows 交叉编译 Qt 应用程序
Qt系列文章之三十八(基于QWidget 创建和使用动态dll共享库)
Qt系列文章之三十八(基于QWidget 创建和使用动态dll共享库)