先建一个C++库

Qt dll库的封装

建成后:

Qt dll库的封装

此处已经将globel文件删掉,.h文件替换成这样的格式

#ifndef LESSION2LIB_H
#define LESSION2LIB_H

#include <QtGlobal>
//Q_DECL_EXPORT 导出类
class Q_DECL_EXPORT Lession2lib
{

public:
    Lession2lib();
    void testFun();
};

//extern "C" Q_DECL_EXPORT void testFun();
Q_DECL_EXPORT void outfum();

#endif // LESSION2LIB_H

其中Lession2lib类与outfum为自定义的库导出类与导出函数,在.cpp文件里可实现具体功能

#include "lession2lib.h"
#include <QMessageBox>
#include <QDebug>

Lession2lib::Lession2lib()
{
    qDebug() << "完成";
}

void Lession2lib::testFun()
{
    QMessageBox::information(0,"lib","告辞!");
}


void outfum()
{
    qDebug() << "fine";
}

编译后在debug目录下生成三个文件

Qt dll库的封装

将.dll、.a,还有根目录下的.h文件一并复制到需要调用的工程根目录下

在工程的.pro文件下添加

LIBS += -L. -llession2lib

其中-L表示目录,-l表示库的名字,编译会自动寻找lib+库名+ .a的文件

这是就可以在程序中调用库内的类和函数了

Qt dll库的封装

如果编译失败,则将变异目录的影子创建去除,才能搜索到根目录下的库文件

Qt dll库的封装

编译运行

Qt dll库的封装Qt dll库的封装

完工啦!

相关文章: