动态库静态库的区别

2023-05-16

1、动态库以及静态库区别
静态库是函数和数据编译进一个二进制文件里面(.lib文件),在使用静态库链接成可执行程序的时候,链接器会复制静态库内的函数和数据进可执行程序里面(.EXE文件),所以在加载库的时候不需要加载相应的库函数
动态库往往是提供两个文件,一个是引入库文件(.lib)和一个DLL(.dll)文件,但是引入库文件(.lib)只是包含DLL文件的导出函数以及函数的变量名符号,而DLL文件里包含了所有的函数以及数据,假如调用动态库是在编译到可执行程序的时候才会调用没有数据以及函数的复制,所以在发产品的时候需要加上相应的动态库
2、动态链接库加载函数的两种方法:
  第一种是静态链接方式,在这种方式下,动态链接库中的所有数据代码都将拷贝到调用程序的代码空间中去,此时它和调用程序本身的函数没有什么区别;
  第二种是动态链接方式,在这种方式下,动态链接库中的数据代码是在需要的时候才拷贝到内存中去的;
  两种方式都可以将外部(动态链接库中的)代码资源提供给调用者使用,但前者是全局的,虽随时可以使用,但会增加内存;而后者是局部的,虽节省了内存,但会增加调用时间。
  在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态库静态库的区别 的相关文章

  • 【Docker】将本地镜像推送到远程库/私有库

    前言 这里记录如何将本地镜像推送到远程库和私有库 区别 xff0c 一个是存放到阿里云 xff0c 同一个团队可以登录到同一个阿里云仓库 xff0c 去拉取镜像 一个是存放到本地私有库 xff0c 同一个团队可以连接同一个私有库 xff0c
  • HTTP协议--几种数据传输方式

    1 xff09 无状态 http协议是一种自身不对请求和响应之间的通信状态进行保存的协议 xff0c 即无状态协议 这种设置的好处是 xff1a 更快的处理更多的请求事务 xff0c 确保协议的可伸缩性 不过随着web的不断发展 xff0c
  • PDU 超链接

    http blog sina com cn s blog 453226290102wvnu html http blog sina com cn s blog 453226290102wvnv html http blog sina com
  • Canal监控MySQL数据到Kafka详细步骤(jdk+zookeeper+kafka+canal+mysql)

    目录 一 前言二 环境准备三 安装JDK四 安装zookeeper五 安装Kafka六 安装MySQL七 安装canal服务端 xff08 canal监控mysql数据发送到kafka xff09 八 测试是否可以监控到数据九 结语 一 前
  • 流媒体服务器搭建

    本文介绍如何在阿里云 腾讯云等云主机上搭建流媒体服务器 xff0c 包括如何选择云主机配置 如何选择带宽和流媒体服务器软件选择等 流媒体服务器是支撑视频播出的基础系统 xff0c 具有视频直播 视频点播的播出能力 xff0c 有些使用场景下
  • 什么是BGP

    文章目录 1 基本概念什么是BGPBGP路由协议的特点IBGP水平分割规则BGP的路由器号 Router ID BGP工作原理BGP分类 1 基本概念 自治系统 xff0c 指的是在同一个组织管理下 使用相同策略的设备的集合 xff1b 不
  • Web服务------Nginx域名重定向(Location匹配与Rewrite重写)

    目录 一 常用的Nginx正则表达式二 location1 location 的分类2 location 常用的匹配规则3 location 优先级4 location 示例说明5 优先级总结6 匹配规则 二 rewrite1 rewrit
  • 华为云-计算云服务介绍

    前言 相信很多小伙伴在刚开始接触各类云产品的时候 xff0c 被各种各样的云产品类如规格 型号 价格 适用场景等问题所困扰 本文就给大家介绍一下华为云常见云产品的规格区别和适用场景 帮助大家选择合适的云产品 文章目录 前言一 计算云服务1
  • 数据资源 | 八大板块!数据公开下载渠道

    本文综合整理自网站企研 中国学术大数据平台 xff08 https r qiyandata com xff09 来源 xff1a 企研 中国学术大数据平台 公共数据资源 目录 三农 地理信息 生态环境 碳中和 调查数据 省级统计局 省级政府
  • [C++] std::vector

    std vector template lt class T class Alloc 61 allocator lt T gt gt class vector generic template vector是表示可以改变大小的数组的序列容器
  • centos克隆

    下一步 下一步 选中创建完整克隆 启动克隆的系统 编辑 xff1a vi etc udev rules d 70 persistent net rules 修改之后 修改端口号和attr 修改完 执行 重启 xff1a reboot pin
  • 用pyhon下载jupyter遇到的问题(pip版本过低)

    首先安装jupyter 的前提是需要提前安装python 3 3版本及以上 然后输入 pip install jupyter 出现下面问题 python V 在命令行窗口输入 xff0c 验证python的版本 pip install ju
  • ubuntu利用usb_cam打开摄像头

    一 安装摄像头驱动usb cam 想要标定多个相机 xff0c 首先得把相机打开吧 xff0c usb cam是针对usb摄像头的ros驱动包 xff0c 简单来说就是得有这个功能包 xff0c 才能在ros中把摄像头打开 首先打开终端 x
  • Jmeter性能测试(1)---基础介绍

    jmeter xff08 一 xff09 基础介绍 参考书籍 xff1a 段念 软件性能测试与案例剖析 第二版 推荐一本书 零成本实现web性能测试 基于Apache jmeter xff0c 主要内容是一些关于jmeter的实战使用 xf
  • 利用Opencv实现物体的跟踪(1)

    目前感觉 xff0c 利用opencv实现的物体追踪 xff0c 关键要设置好你所检测对象的area xff0c 不然很容易出现混乱 本人也是自学 xff0c 敬请批评指正 import cv2 定义运算的核算子 BLUR RADIUS 6
  • C语言连连看秒杀辅助

    图像处理第一课 连连看秒杀辅助 项目效果 直接使用C语言 xff0c 实现 连连看 最强辅助 项目分析 项目的技术核心 不是逆向 xff0c 而是图像处理 图像处理 xff0c 更高维度的技术手段 电影中的图像处理应用 无人机战争 电影 完
  • 推荐10款适合C/C++开发人员的IDE

    IDE是程序员用于编程的应用程序或软件 IDE主要包括三部分 xff0c 即源代码编辑器 xff0c 构建自动化工具 xff08 编译器 xff09 和调试器 源代码编辑器是程序员可以编写代码的地方 xff0c 而程序员使用构建自动化工具来
  • C++五子棋人机对战

    目录 本教程配套视频 1 项目目标 2 效果演示 3 创建项目 4 项目框架设计 4 1 设计项目框架 4 2 根据设计框架创建类 5 给类添加主要接口 5 1 设计棋盘类Chess的主要接口 5 2 设计AI类的主要接口 5 3 设计Ma
  • VSCode这13款插件也太好用了

    又见VsCode Visual Studio Code xff08 简称VS Code xff09 是一个由微软开发 xff0c 同时支持Windows Linux 和 macOS 等操作系统的免费代码编辑器 xff0c 在2019年的St
  • C语言和C++的区别和联系,大多数人都说错了

    前言 C语言和C 43 43 到底是什么关系 xff1f 首先C 43 43 和C语言本来就是两种不同的编程语言 xff0c 但C 43 43 确实是对C语言的扩充和延伸 xff0c 并且对C语言提供后向兼容的能力 对于有些人说的C 43

随机推荐