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语言基础篇,主要讲述一下常量,常量即不可被直接修改的量(const修饰的常变量可间接修改,后续文章会继续说明)请大家持续关注脚本之家
    2021-10-10
  • C++实现当前时间动态显示的方法

    C++实现当前时间动态显示的方法

    这篇文章主要介绍了C++实现当前时间动态显示的方法,涉及C++时间操作及Sleep方法的使用,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C语言多文件编程问题解析

    C语言多文件编程问题解析

    在某些场景中,考虑到编译效率和可移植性,#pragma once 和 #ifndef 经常被结合使用来避免头文件被 重复引入,这里介绍用 _Pragma 操作符避免头文件重复引入的问题,感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • c语言判断是否素数程序代码

    c语言判断是否素数程序代码

    这篇文章主要介绍了c语言判断是否素数的方法和问题,大家参考使用吧
    2013-11-11
  • C指针原理教程之C指针基础

    C指针原理教程之C指针基础

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
    2019-02-02
  • C++构造函数的一些注意事项总结

    C++构造函数的一些注意事项总结

    构造函数是创建类对象,并且在创建完成前,对类进行初始化的特殊函数,下面这篇文章主要给大家介绍了关于C++构造函数的一些注意事项,需要的朋友可以参考下
    2021-11-11
  • C++实现二叉树基本操作详解

    C++实现二叉树基本操作详解

    这篇文章主要为大家详细介绍了C++实现二叉树基本操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 深度剖析C++对象池自动回收技术实现

    深度剖析C++对象池自动回收技术实现

    今天小编就为大家分享一篇关于深度剖析C++对象池自动回收技术实现,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • C++自定义函数判断某年某月某日是这一年中第几天

    C++自定义函数判断某年某月某日是这一年中第几天

    这篇文章主要介绍了C++自定义函数判断某年某月某日是这一年中第几天的方法,涉及C++日期与时间操作相关技巧,需要的朋友可以参考下
    2016-06-06
  • C++ Leetcode实现从英文中重建数字

    C++ Leetcode实现从英文中重建数字

    本文主要介绍了当给你一个字符串s,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)时,如何通过Leetcode按升序返回原始的数字。感兴趣的童鞋可以来看看
    2021-11-11

最新评论