先建一个C++库
建成后:
此处已经将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目录下生成三个文件
将.dll、.a,还有根目录下的.h文件一并复制到需要调用的工程根目录下
在工程的.pro文件下添加
LIBS += -L. -llession2lib
其中-L表示目录,-l表示库的名字,编译会自动寻找lib+库名+ .a的文件
这是就可以在程序中调用库内的类和函数了
如果编译失败,则将变异目录的影子创建去除,才能搜索到根目录下的库文件
编译运行
完工啦!