C++使用QTcreator创建动态库流程

来自:网络
时间:2024-09-10
阅读:

前言

这篇文章主要记录使用QTcreator创建C++动态库的流程,仅供参考。

环境:linux deepin20 + Qt 5.8.0

一、什么是动态库?有何作用?

接下来简单介绍一下动态库及其作用:动态库是一种在程序运行时才被加载到内存中的共享库。

动态库,也称为动态链接库(DLL,Dynamic Link Library),是一种可以在程序运行时动态加载的代码和数据文件。与静态库不同,动态库并不在程序编译链接时将代码“拷贝”到可执行文件中,而是在程序运行时根据需要加载相应的代码和数据。这样做的好处是:

节省内存:多个程序可以共享同一份动态库的代码和数据,减少了内存的占用。
便于更新:当动态库更新时,只需要替换库文件,而不需要重新编译依赖该库的所有程序。
减少部署成本:程序发布时,只需携带必要的动态库文件,而不是整个程序的所有依赖,这样可以减小安装包的大小。
提高程序启动速度:因为动态库是在程序运行时才加载的,所以可以加快程序的启动速度。
支持模块化设计:动态库的使用使得程序可以更加模块化,各个功能可以独立更新和维护。
总的来说,动态库是现代软件开发中常用的一种技术,它使得程序的开发、维护和部署都变得更加灵活和高效。在Windows操作系统中,动态库通常以.dll为扩展名;在Linux和macOS系统中,则以.so(共享对象)或.dylib为扩展名。

二、使用QtCreator创建步骤

1.创建库

新建Qt工程时选择C++库,后续选项根据需求进行选择

C++使用QTcreator创建动态库流程

创建成功会得到这样一个目录结构

这里我们只需要mylib.c 和mylib.h,其余无关的mylib_global.h可以删除

C++使用QTcreator创建动态库流程

删除头文件同时许删除该文件在其他文件中的引用

头文件中定义的空类,不会用到,所以一并删除

C++使用QTcreator创建动态库流程

2.添加需要加入动态库的函数

这里我定义了一个简单的fuc()

C++使用QTcreator创建动态库流程

C++使用QTcreator创建动态库流程

3.构建动态库

这里需要点击 构建 ,不要构建并运行,因为没有main函数

C++使用QTcreator创建动态库流程

4.生成动态库文件

构建成功后会在,活动目录下生成如下三个软连接和个动态库本体

C++使用QTcreator创建动态库流程

5.创建项目进行测试

这里我创建了一个QTapplication项目,在里面进行测试

项目创建就是简单的QT项目创建方式,这里我的项目名为 test

5.1在工程目录下创建如下两个文件夹,用于存放头文件和动态库

C++使用QTcreator创建动态库流程

5.2将创建好的动态库中的 mylib.h拷贝到 include文件夹中,将.so文件拷贝到lib文件夹中

C++使用QTcreator创建动态库流程

C++使用QTcreator创建动态库流程

5.3包含头文件和动态库路径,并调用库进行测试

在工程文件 test.pro 中添加如下两行

//头文件路径包含
INCCLUDEPATH += 头文件路径
//包含库
LIBS += -L 库文件目录 -l动态库名

C++使用QTcreator创建动态库流程

进行调用并测试

C++使用QTcreator创建动态库流程

显示输出结果成功,证明通过动态库调用func()成功,动态库创建成功。

总结

返回顶部
顶部