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

 更新时间:2024年06月12日 11:00:17   作者:嵌入式大白菜  
在工程中,经常会根据不同的场景需求将类封装成库文件,本文主要介绍了C++使用QTcreator创建动态库流程,具有一定的参考价值,感兴趣的可以了解一下

前言

这篇文章主要记录使用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()成功,动态库创建成功。

总结

到此这篇关于C++使用QTcreator创建动态库流程的文章就介绍到这了,更多相关 QTcreator创建动态库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 贪心算法的C语言实现与运用详解

    贪心算法的C语言实现与运用详解

    这篇文章主要介绍了贪心算法的C语言实现与运用详解,运用么,就是文中所附的ACM练习题,哈哈:D需要的朋友可以参考下
    2015-08-08
  • C++关键字mutable学习笔记

    C++关键字mutable学习笔记

    这篇文章主要为大家介绍了C++关键字mutable学习笔记,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • C字符串与C++中string的区别详解

    C字符串与C++中string的区别详解

    以下是对C字符串与C++中string的区别进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-09-09
  • VC基于ADO技术访问数据库的方法

    VC基于ADO技术访问数据库的方法

    这篇文章主要介绍了VC基于ADO技术访问数据库的方法,较为详细的分析了VC使用ADO操作数据库的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • C/C++整数乘积的溢出问题的解决

    C/C++整数乘积的溢出问题的解决

    整数乘积的溢出问题是指两个整数相乘得到的结果超过了所能表示的数据类型的范围,本文给大家介绍了C/C++整数乘积的溢出问题的解决,需要的朋友可以参考下
    2024-02-02
  • C语言创建和操作单链表数据结构的实例教程

    C语言创建和操作单链表数据结构的实例教程

    这篇文章主要介绍了C语言创建和操作单链表数据结构的实例教程,讲解使用C语言实现链表结构时指针的使用,需要的朋友可以参考下
    2016-04-04
  • C++ 简单的任务队列详解

    C++ 简单的任务队列详解

    下面小编就为大家带来一篇C++ 简单的任务队列详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 浅析c#中WebBrowser控件的使用方法

    浅析c#中WebBrowser控件的使用方法

    以下是对c#中WebBrowser控件的使用方法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • Qt中Tab与Tree组件实现分页菜单

    Qt中Tab与Tree组件实现分页菜单

    本文主要介绍tabWidget选择夹组件与TreeWidget树形选择组件的常用方法及灵活运用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析

    这篇文章主要介绍了C语言数据结构中二分查找递归非递归实现并分析的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论