区别:静态库和动态库最本质的区别就是:该库是否被编译进目标(程序)内部。

分别介绍:

静态(函数)库
一般扩展名为(.a或.lib),这类的函数库通常扩展名为libxxx.a或xxx.lib 。
这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译。
动态函数库
动态函数库的扩展名一般为(.so或.dll),这类函数库通常名为libxxx.so或xxx.dll 。
与静态函数库被整个捕捉到程序中不同,动态函数库在编译的时候,在程序里只有一个“指向”的位置而已,也就是说当可执行文件需要使用到函数库的机制时,程序才会去读取函数库来使用;也就是说可执行文件无法单独运行。这样从产品功能升级角度方便升级,只要替换对应动态库即可,不必重新编译整个可执行文件。
总结:综上,不能看出:

从产品化的角度,发布的算法库或功能库尽量使动态库,这样方便更新和升级,不必重新编译整个可执行文件,只需新版本动态库替换掉旧动态库即可。
从函数库集成的角度,若要将发布的所有子库(不止一个)集成为一个动态库向外提供接口,那么就需要将所有子库编译为静态库,这样所有子库就可以全部编译进目标动态库中,由最终的一个集成库向外提供功能。

c++ 之动态库与静态库区别相关推荐

  1. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  2. 动态库、静态库、运行时库、引入库之间的区别

    动态库.静态库.运行时库.引入库之间的区别 杂集.捡对口味的看看吧. 转自:http://lingualspark.blog.sohu.com/94785899.html 运行时库:Unix中一个典型 ...

  3. 头文件和库文件区别,动态库和静态库的区别,动静态库的生成

    文章目录 一.什么是头文件?什么是库文件?有什么区别? 先说总结 目标文件 二.什么是静态库?什么是动态库?有什么区别? 三.为什么只用在程序头部写上包含的头文件,头文件中并没有实现内容就可以使用声明 ...

  4. mingw64下动态库和静态库链接的真正区别和用法(详细)

    笔者一直以来都对mingw64下动态库和静态库链接的真正区别和用法存疑,于是做了一些测试,这篇文章记录了测试过程和测试结果,如果只想知道结果可以跳转到文章末尾 一.准备工作 首先准备三个测试文件 其中 ...

  5. Linux系统中动态库和静态库的区别

    Linux系统中"动态库"和"静态库"那点事儿 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源 ...

  6. Linux动态库和静态库比较

     Linux动态库和静态库比较文件预览 文件目录树如下,如你所见,非常简单.    1. libtest/    2. |-- lt.c    3. |-- lt.h    4. `-- test.c ...

  7. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  8. 动态库和静态库的创建

    库:一组别人实现好的函数接口 1.命名方法  静态库 : libname.a  动态库 : libname.so  注意   :库的名字是name  2.链接动态库和静态库的区别  预处理,编译,汇编 ...

  9. c语言仿ce内存搜索工 源代码_C语言函数库:动态库和静态库优缺点比较

    函数的重要性 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护.我们可以把他们制 ...

  10. 动态库与静态库优缺点比较(转 侵删)

    动态库与静态库优缺点比较 2017-10-09   13:32:01      我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效 ...

最新文章

  1. cifs------网络文件系统(1)
  2. 学习BeetlSQL总结(2)——查询API,更新API
  3. c语言:输入两个正整数m和n,求其最大公约数和最小公倍数
  4. gzip android,怎么在Android系统中使用gzip进行数据传递
  5. UVa 1368 - DNA Consensus String
  6. 百度联盟广告如何理解按父容器宽度
  7. SSM 整合 4:Spring IoC 容器基于的两个重要接口 BeanFactory 和 ApplicationContext
  8. MySQL高级知识(十六)——小表驱动大表
  9. 算法之路(5)--括号匹配问题(Valid Parentheses)[leetcode]
  10. php preg split,php preg_split()字符串分割函数的使用方法
  11. java day09【继承、super、this、抽象类】
  12. 【转】 Pro Android学习笔记(八一):服务(6):复杂数据Parcel
  13. 10.1综合强化刷题 Day2 morning
  14. 黑莓7100刷机及修改PIN,完美破解超越输入法
  15. 计算机组成原理-检错码、纠错码
  16. linux下libreoffice增加字体,Linux下Libreoffice增加字体
  17. 今日芯声 | 从“罪犯”到“英镑人物”,图灵比肩英国女王
  18. Docker的基本管理命令!!!学会docker的第一步
  19. 苹果手机通话声音小怎么调_通话音量小怎么办?教你安卓和苹果的解决教程,只需2步...
  20. 自成一派的正则表达式

热门文章

  1. MS Office Excel 2007/2003 资料下载汇总
  2. 雷蛇毒蝰迷你版无法连接雷云3解决方法
  3. HDLBits: 在线学习 SystemVerilog(十七)-Problem 106-114(移位寄存器)
  4. FreeSWITCH之配置G729转码
  5. 动图怎么分解成图片?Gif图片如何在线分解
  6. 机器学习之支持向量机: Support Vector Machines (SVM)
  7. 广告深度学习计算:召回算法和工程协同优化的若干经验
  8. 看这里看这里:结构体的超级详细讲解
  9. WEB HTML 二级菜单 折叠展开菜单
  10. 什么是线性表?什么是线性表的顺序存储结构?什么是线性表的链式存储结构?