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++动态调用动态链接库(DLL或SO)的方法实现

    C++动态调用动态链接库(DLL或SO)的方法实现

    动态链接库是一种Windows操作系统下常见的可执行文件格式,它包含了一些可被其他应用程序调用的函数和数据,本文主要介绍了C++动态调用动态链接库(DLL或SO),感兴趣的可以了解一下
    2024-01-01
  • C语言实现扫雷游戏(含注释详解)

    C语言实现扫雷游戏(含注释详解)

    这篇文章主要为大家详细介绍了C语言实现扫雷游戏,含注释,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • C语言算法积累加tag的循环队列

    C语言算法积累加tag的循环队列

    这篇文章主要为大家介绍了C语言算法积累加tag的循环队列的解题思路,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • C语言实现五子棋小游戏

    C语言实现五子棋小游戏

    五子棋游戏是一款很经典的智力游戏,只有学过编程语言的人,把五子棋的编程原理弄懂了,就能用自己熟悉的语言实现出来,在这里给大家分享,c语言五子棋源码,仅供大家参考借鉴。
    2016-03-03
  • 详解C++实现匈牙利算法

    详解C++实现匈牙利算法

    匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。美国数学家哈罗德·库恩于1955年提出该算法。此算法之所以被称作匈牙利算法,是因为算法很大一部分是基于以前匈牙利数学家Dénes Kőnig和Jenő Egerváry的工作之上创建起来的
    2021-06-06
  • C++ 实现输入含空格的字符串

    C++ 实现输入含空格的字符串

    这篇文章主要介绍了C++ 实现输入含空格的字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • C++采用openfilename打开文件对话框用法实例

    C++采用openfilename打开文件对话框用法实例

    这篇文章主要介绍了C++采用openfilename打开文件对话框用法实例,是C++文件操作中非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • C语言实现将彩色bmp图像转化为灰图、灰度图像反色

    C语言实现将彩色bmp图像转化为灰图、灰度图像反色

    这篇文章主要为大家详细介绍了C语言实现将彩色bmp图像转化为灰图、灰度图像反色,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • c语言实现足球比赛积分统计系统

    c语言实现足球比赛积分统计系统

    这篇文章主要为大家详细介绍了c语言实现足球比赛积分统计系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C语言判断数是否为素数与素数输出

    C语言判断数是否为素数与素数输出

    大家好,本篇文章主要讲的是C语言判断数是否为素数与素数输出,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论