【C++】动态库与静态库

在形式上的区别

动态库的后缀:在Linux下后缀为.so,在win系统下后缀为.dll。
静态库的后缀:在Linux下后缀为.a,在win系统下后缀为.lib。

特点和用途

动态库(Dynamic Library)和静态库(Static Library)是两种不同类型的库文件,它们在软件开发中有不同的特点和用途:

1. 静态库:
● 静态库是一种在编译时链接到程序的库。它包含了项目的实际代码和函数,这些代码在编译可执行文件时被复制到可执行文件中。
● 当使用静态库构建程序时,所有库的代码都被复制到最终的可执行文件中,因此可执行文件独立于外部库,不需要外部库的存在。
● 静态库的优点是,它使得程序更加独立和可移植,因为可执行文件包含了所有依赖的代码。然而,这可能会导致可执行文件变得较大,特别是当多个程序使用相同的静态库时。

2. 动态库:
● 动态库是一种在运行时加载到内存中的库。它包含了项目的代码和函数,但不包含在可执行文件中。
● 当使用动态库构建程序时,程序会在运行时加载所需的动态库,因此多个程序可以共享相同的动态库。这减小了可执行文件的大小,因为库的代码只存储在一个位置。
● 动态库的优点是,它可以减小可执行文件的大小,因为库的代码只存储一次。此外,如果需要更新库的代码,只需更新库文件本身,而不需要重新编译所有使用该库的程序。

总结

●静态库在编译时链接到可执行文件,使可执行文件独立。
●动态库在运行时加载到内存中,多个程序可以共享同一库,减小了可执行文件的大小。
●静态库通常用于嵌入式系统或需要独立性的应用程序。
●动态库通常用于共享代码和减小可执行文件大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变电站接地电阻监测装置-输电铁塔接地电阻监测装置:实时监测,预防故障

变电站接地电阻监测装置 接地电阻对电力系统的安全和稳定性至关重要,但在高压环境和极端气候下,接地系统可能出现性能下降,增加故障和跳闸的风险。传统的人工检测方法常常无法及时发现这些问题,并且操作繁琐。为此,我…

随机生成100组N个数并对比,C++,python,matlab,pair,std::piecewise_construct

随机生成100组N个数,数的范围是1到35,并检查是否包含目标数组的数字 python版本 import numpy as np def count_groups_containing_obj(N, obj):# 随机生成100组N个数,数的范围是1到35groups np.random.randint(1, 36, size(1000, N))#pri…

AndroidStudio 加载grade失败问题解决

1:在gradle-wrapper.properties中添加国内镜像 distributionUrlhttp\://mtl-gradle-mirror.oss-cn-hangzhou.aliyuncs.com/gradle-5.6.4-bin.zip 2:在build.gradle中加上阿里镜像 repositories {maven { url https://maven.aliyun.com/repository/public/ }maven …

练习LabVIEW第四十三题

学习目标: 模拟红绿灯,红灯亮十秒,绿灯亮五秒,交替,并用波形图将波形显示 开始编写: 前面板 两个指示灯,一个红色,一个绿色,一个波形图; 程序框图 创建…

MySQL45讲 第十一讲 怎么给字符串字段加索引?

文章目录 MySQL45讲 第十一讲 怎么给字符串字段加索引?一、引言二、前缀索引(一)概念与创建方式(二)数据结构与存储差异(三)确定前缀长度的方法 三、前缀索引对覆盖索引的影响四、其他索引创建方…

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例&#…

[Web安全 网络安全]-学习文章汇总导航(持续更新中)

文章目录: 一:学习路线资源 1.路线 2.资源 二:工具 三:学习笔记 1.基础阶段 2.进阶阶段 四:好的参考 五:靶场 博主对网络安全很感兴趣,但是不知道如何取学习,自己一步一步…

2.Python解释器

python解释器程序,用来翻译python代码,并提交给计算机执行。 上一篇博客就是安装了python解释器程序 写一个python文件,在文件中写入多行代码并执行: 进入python后,输入exit()命令退出

Eslint 和 Prettier

提示:ESLint 和 Prettier 是两个常用的工具,它们在 JavaScript 生态系统中扮演着重要角色,但它们的功能和目的有所不同。 一、ESLint是什么? 1.目的: ESLint 是一个静态代码分析工具,主要用于查找和修复 …

JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习

先简单记录下简单使用跟测试,后续再补充具体,最近有用到,简单来说就是后端(服务端)编写个发射器,实现一次请求,一直向前端客户端发射数据,直到发射器执行完毕,模拟ai一句一句回复的效果 Respon…

安装Element-Plus与v-model在vue3组件中的使用

安装Element-Plus 1.安装Element-Plus # 选择一个你喜欢的包管理器# NPM npm install element-plus --save# Yarn yarn add element-plus# pnpm pnpm install element-plus 2.main.ts中导入 import { createApp } from vue import { createPinia } from piniaimport App fr…

Liunx:文件fd、重定向、管道

文件fd: 操作系统运行中一定存在着许多被打开的文件,这些文件需要被管理。一个进程会打开若干个文件。一个文件如果在操作系统中被打开,那么必须给该文件创建一个文件对象,包含被打开文件的各种属性。那么进程与文件的关系就变成…

如何产看SQL 查询的执行时间

要查看 SQL 查询的执行时间,尤其是毫秒级别,可以使用以下几种方法: 方法 1:使用 SET STATISTICS TIME 查看执行时间 SET STATISTICS TIME 会显示执行时间的详细信息,包括 CPU 时间和总耗时。启用后,SQL S…

linux笔记(DNS)

一、概念 DNS(Domain Name System)DNS 是一种分布式网络目录服务,主要用于将人类易于记忆的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)。它就像是互联网的电话簿&a…

Power Pivot、Power BI 和 SQL Server Analysis Services 的公式语言:DAX(数据分析表达式)

DAX(Data Analysis Expressions)是一种用于 Power Pivot、Power BI 和 SQL Server Analysis Services 的公式语言,旨在帮助用户进行数据建模和复杂计算。DAX 的设计初衷是使数据分析变得简单而高效,特别是在处理数据模型中的表关系…

优衣库在淘宝平台的全方位竞品分析与店铺表现研究:市场定位与竞争策略透视

优衣库品牌在淘宝平台的全方位竞品与店铺表现分析 一、品牌商品分析 1.商品列表与分类分析(数据来源:关键词商品搜索接口;获取时间:2024.08.30) 商品类别分布柱状图: 根据关键词商品搜索接口获取到的优衣…

设计模式-七个基本原则之一-里氏替换原则

里氏替换原则(LSP)面向对象六个基本原则之一 子类与父类的替代性:子类应当能够替代父类出现的任何地方,且表现出相同的行为。行为的一致性:子类的行为必须与父类保持一致,包括输入和输出、异常处理等。接口…

开源数据库 - mysql - innodb源码阅读 - master线程(一)

master struct /** The master thread controlling the server. */void srv_master_thread() {DBUG_TRACE;srv_slot_t *slot; // 槽位THD *thd create_internal_thd(); // 创建内部线程ut_ad(!srv_read_only_mode); //断言 srv_read_only_mode 为 falsesrv_main_thread_proce…

RocketMQ 自动注入消费者

目录 前言一、情景介绍二、问题分析三、代码实现 前言 之前接到一个需求,我们项目的技术负责人希望通过配置的形式,在项目启动的时候自动根据配置生成对应的消费者 觉得还有点意思,随即记录一下~ 一、情景介绍 比如我这里有一个消费者 Mes…

数据结构(C语言版)(第2版) 课后习题答案 李冬梅

数据结构(C语言版)(第2版) 第1章 绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数…