当前位置: 首页 > news >正文

QT:动态库与静态库的生成和使用

目录

一.动态库和静态库

1.动态链接(Dynamic Linking)

2.静态链接(Static Linking)

3.选择依据

二.库的创建

1.新建文件和项目中,选择Library中C++库

2.新建一个名为libtest库

3.打印一个qDebug,用于调用

三.库的使用

1.创建名为libusertest的项目并将库libtest中头文件libtest.h和libtest_global.h复制粘贴入libusertest项目中

2.右键libusertest项目添加库,选择外部库

3.根据平台类型选择平台,然后选择库文件路径

4.选择成功后,系统会自动在pro文件中生成路径

5.调用库文件libtest中的打印

6.点击按钮,成功打印libtest库中qdebug


一.动态库和静态库

1.动态链接(Dynamic Linking)

  1. 定义

    • 动态链接库(DLL)或动态链接库(SO)在运行时被加载到程序中。
    • 程序在编译时并不包含库的代码,而是在运行时从文件系统加载。
  2. 优点

    • 更新方便:如果库更新了,不需要重新编译程序,只需替换库文件即可。
    • 节省空间:程序和库分离,可以减少程序的大小。
    • 兼容性:不同的程序可以共享同一个库版本,减少资源占用。
  3. 缺点

    • 依赖性问题:程序依赖于特定的库版本,如果库版本不兼容,可能导致程序运行出错。
    • 性能问题:动态链接可能会增加程序启动时间,因为需要额外的加载时间。

2.静态链接(Static Linking)

  1. 定义

    • 静态链接库(LIB)在编译时被直接链接到程序中。
    • 程序包含库的代码,不需要在运行时从文件系统加载。
  2. 优点

    • 独立运行:程序不依赖于外部库,可以在任何环境中独立运行。
    • 性能:因为不需要在运行时加载库,所以通常性能更好。
  3. 缺点

    • 更新困难:如果库更新,需要重新编译程序。
    • 占用空间大:程序中包含了库的完整代码,导致程序体积增大。
    • 兼容性问题:如果库的版本更新,可能需要更新所有使用该库的程序。

3.选择依据

  • 项目需求:如果项目需要频繁更新库,或者需要在不同操作系统上运行,动态链接可能是更好的选择。
  • 性能要求:如果性能是关键考虑因素,静态链接可能更合适。
  • 可移植性:如果需要确保程序在任何环境下都能运行,静态链接是必须的。

在实际开发中,开发者需要根据项目的具体需求和目标环境来选择合适的链接方式。

二.库的创建

1.新建文件和项目中,选择Library中C++库

2.新建一个名为libtest库

3.打印一个qDebug,用于调用

三.库的使用

1.创建名为libusertest的项目并将库libtest中头文件libtest.h和libtest_global.h复制粘贴入libusertest项目中

2.右键libusertest项目添加库,选择外部库

3.根据平台类型选择平台,然后选择库文件路径

4.选择成功后,系统会自动在pro文件中生成路径

5.调用库文件libtest中的打印

6.点击按钮,成功打印libtest库中qdebug


http://www.mrgr.cn/news/20230.html

相关文章:

  • HTML 文本标签
  • 财税系统集成Java发票查验接口代码示例
  • 零基础国产GD32单片机编程入门(十四)内部RTC实时时钟及实战含源码
  • 计算机大专生没有出路了吗?听听过来人怎么讲!
  • 面对市场变革,企业数字化转型的必要性与挑战何在?
  • 竟然有50万个使用Flutter开发的应用了,这也太牛了!
  • 如何缩放C#中的img
  • 司法军警行业ITSM案例分析报告
  • 解决Can‘t load tokenizer for ‘bert-base-chinese‘.问题
  • 【Linux】常见指令及权限相关知识详细梳理
  • linux基础IO——动静态库——实现与应用学习、原理深度解析
  • C++入门基础知识50——【关于C++数字】之C++ 数学运算
  • 解决linux云服务器ping不通另一台linux云服务器的问题
  • 下载适用于 Linux 的 MongoDB Shell教程
  • SpringBoot2:请求处理原理分析-FORM表单请求接口
  • stm32之SPI通信协议
  • llamaindex实现rag
  • Nginx 平滑升级指南
  • keysight346A安捷伦346B噪声源HP346B-18Ghz
  • 跟我一起写 SIPp XML scenario file