在 QT 中,一般将驱动、动态库、.dll文件一概而论。
一路下一步,至工程建立。
dynamiclibrary.h
#ifndef DYNAMICLIBRARY_H
#define DYNAMICLIBRARY_H
#include "dynamiclibrary_global.h"
class DYNAMICLIBRARYSHARED_EXPORT DynamicLibrary
{
public:
DynamicLibrary();
int test();
};
dynamiclibrary.cpp
#include "dynamiclibrary.h"
#include <QDebug>
DynamicLibrary::DynamicLibrary()
{
}
int DynamicLibrary::test()
{
qDebug()<<"This is a test";
return 0;
}
点击编译运行代码,可以知道编译输出命令为:
g++ -shared -Wl,-subsystem,windows -mthreads -Wl,--out-implib,debug\libDynamicLibrary.a -o debug\DynamicLibrary.dll debug/dynamiclibrary.o -LD:\QT5.9\Qt5.9.0\5.9\mingw53_32\lib D:\QT5.9\Qt5.9.0\5.9\mingw53_32\lib\libQt5Cored.a
在 debug 文件下有
那如何使用这个动态库文件呢?
导入相关头文件。
(新建个include文件夹,然后将两个头文件复制进去)
将动态库拷贝到可执行文件的同级目录下。
配置工程路径,让当前工程可以找到它。
LIBS += -L$$PWD -lDynamicLibrary # -L$$PWD表示.pro所在目录 ../表示上一层目录 -
使用动态库,
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "include/dynamiclibrary.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
DynamicLibrary dlb;
dlb.test();
}
至此完成。