QT之动态库的创建、及测试代码编写

1)新建文件和目录,在项目中选择library,右侧选择C++library,如下图所示:
QT之动态库的创建、及测试代码编写_第1张图片
2)按choose后,出现下面如图所示,添加库工程名字:
QT之动态库的创建、及测试代码编写_第2张图片

3)选择共享库,并最好修改类名、头文件、源文件的名称,如下图所示:
QT之动态库的创建、及测试代码编写_第3张图片
4)选择编译器,这里需要跟需要使用的工程文件编译器一致,如下图所示:
QT之动态库的创建、及测试代码编写_第4张图片
5)自动生成的库中,头文件会有如define MYSHARELIB_EXPORT Q_DECL_EXPORT 宏定义,为了方便使用,可以直接使用Q_DECL_EXPORT导出,如下图所示:
QT之动态库的创建、及测试代码编写_第5张图片
6)动态库的头文件简单代码如下(可以导出类和函数):

#ifndef SHARELIB_H
#define SHARELIB_H

#include

//Q_DECL_EXPORT导出类
class Q_DECL_EXPORT Sharelib  //导出的是类
{
public:
    Sharelib();
};
extern "C" Q_DECL_EXPORT void testFun(); //c语言方式进行导出 //导出的是函数

#endif // SHARELIB_H

7)动态库的源文件案例代码如下:

Sharelib::Sharelib()
{
    qDebug()<<"Sharelib constructor------";
}

void testFun()
{
    qDebug()<<"hello world";
}

8)生成好的动态库, 把它复制到调用者的指定目录,如下图所示:
QT之动态库的创建、及测试代码编写_第6张图片
QT之动态库的创建、及测试代码编写_第7张图片
9)调用主函数的xxx.pro工程文件,需要添加如下配置:

# -L 表示目录,-l 表示库的名字 会自动寻找 lib + 库名 + .a的文件;
LIBS += -L. -lSharelib

10)编写调用动态库测试代码:

#include"Sharelib.h"

int main(int argc, char *argv[])
{
    Sharelib lib1;
    testFun();
    return 0;
}

  1. 测试效果如下:
Sharelib constructor------
hello world

你可能感兴趣的:(qt,开发语言)