使用QTcreator创建动态库流程

本文详细介绍了如何在LinuxDeepin20+Qt5.8.0环境中,通过QtCreator创建C++动态库,包括创建库、添加函数、构建和生成动态库文件,以及在新项目中测试动态库的使用过程。
摘要由CSDN通过智能技术生成


前言

这篇文章主要记录使用QTcreator创建C++动态库的流程,仅供参考。
环境:linux deepin20 + Qt 5.8.0


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

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

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

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

二、使用QtCreator创建步骤

1.创建库

新建Qt工程时选择C++库,后续选项根据需求进行选择
在这里插入图片描述
创建成功会得到这样一个目录结构
这里我们只需要mylib.c 和mylib.h,其余无关的mylib_global.h可以删除
在这里插入图片描述
删除头文件同时许删除该文件在其他文件中的引用
头文件中定义的空类,不会用到,所以一并删除
在这里插入图片描述

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

这里我定义了一个简单的fuc()
在这里插入图片描述
在这里插入图片描述

3.构建动态库

这里需要点击 构建 ,不要构建并运行,因为没有main函数
在这里插入图片描述

4.生成动态库文件

构建成功后会在,活动目录下生成如下三个软连接和个动态库本体
在这里插入图片描述

5.创建项目进行测试

这里我创建了一个QTapplication项目,在里面进行测试
项目创建就是简单的QT项目创建方式,这里我的项目名为 test

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

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

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

在这里插入图片描述
进行调用并测试
在这里插入图片描述
显示输出结果成功,证明通过动态库调用func()成功,动态库创建成功。

总结

本文参考多方博客,加自身经历,仅供学习总结使用,如有雷同,还望见谅

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
LinuxQt Creator是一个强大的集成开发环境,用于开发跨平台的应用程序。在使用Qt Creator创建和调用动态库时,需要经过以下几个步骤: 1. 首先,在Qt Creator新建一个工程。选择“Dynamic Library”作为项目类型。 2. 在工程文件,定义需要暴露给其他程序使用的函数和类。可以在.h头文件声明函数和类的接口,并在.cpp源文件实现相应的功能。 3. 编译生成动态库文件。在Qt Creator,可以点击“构建”按钮编译和链接生成动态库文件。生成的动态库文件一般以.so(shared object)为扩展名。 4. 创建一个新的可执行程序项目,并引用该动态库。在新的项目,需要在.pro文件添加动态库的依赖关系。例如,可以使用LIBS += -L/path/to/library -lmylibrary来指定动态库的路径和名称。 5. 在可执行程序调用动态库的函数或类。在主函数或其他需要使用动态库的地方,可以直接调用动态库定义的函数或类,实现相应的功能。 值得注意的是,动态库的调用还需要注意以下几点: 1. 在调用动态库函数时,需要先加载动态库。可以使用dlopen函数加载动态库文件,并使用dlsym函数获取需要调用的函数指针。 2. 调用动态库的函数时,需要根据函数的参数类型进行适当的类型转换。因为动态库函数的参数类型可能与调用者的类型不完全匹配。 3. 在完成动态库使用后,需要使用dlclose函数关闭对动态库的引用,释放相关资源。 总结来说,使用Qt CreatorLinux创建和调用动态库需要进行项目的设置、编译生成动态库文件,然后在其他项目引用动态库并调用其定义的函数或类。同时,还需要注意动态库的加载和关闭过程,以确保正确使用动态库功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值