• 引:最近做了算法产品化相关的一些工作,其中涉及到算法库封装的相关工作,封装为动态库。总结动态库和静态库区别和对应使用原则。

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

  • 分别介绍:

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

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

通俗理解动态库与静态库区别相关推荐

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

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

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

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

  3. 结合CmakeList来更好地理解windows下的动态库和静态库

    动态库和静态库的输出 window下输出的静态库为.lib文件,用于包含所有的函数,以及函数的实现,以及其他的一些东西,所以文件较大:输出的动态库包含.lib文件和.dll文件,.lib文件主要包含接 ...

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

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

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

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

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

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

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

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

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

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

  9. C语言函数库:动态库和静态库优缺点比较

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

  10. Linux 动态库和静态库

    From:http://blog.csdn.net/u010977122/article/details/52958330 From:http://blog.163.com/xychenbaihu@y ...

最新文章

  1. 杀进程和取文件最近使用时间
  2. 为office添加繁简体转换
  3. 谈一谈算法工程师的落地能力
  4. java流实例_java流汇总以及使用实例
  5. labelme 语义分割数据集_labelme安装以及使用教程——自制语义分割数据集(保姆级示范)...
  6. UTF8有BOM和无BOM
  7. zigbee上位机通过vs2019的mfc实现
  8. mysql5.0.27+apache2.0.59+php5.2.0+phpMyAdmin-2.6.4-pl3
  9. IBatisNet XML 特殊配置
  10. java行转列_最近面试 Java 后端开发的感受!
  11. GDI+学习及代码总结之------文本与字体
  12. 传奇源码分析-服务器端(SelGate服务器分析)
  13. 无人值守地磅称重系统方案的设计原理
  14. C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
  15. 区块链技术在现实生活中的主要应用有哪些?
  16. python解魔方程序_写一个解二阶魔方的程序
  17. 计算机专业课题 结题报告,《有效技能研究与实践》课题结题报告
  18. JS - scroll属性
  19. 存储芯片涨价:助芯片制造商美光科技业绩连超预期
  20. 共享内存—shmget参数shmflg详解—IPC_CREAT、IPC_EXCL、0666(对内存的读写执行权限)

热门文章

  1. IP地址定位之IP画像——如何形成IP用户画像?
  2. 案例丨长江今年1号洪水平稳通过 金仓助力三峡工程防洪保电
  3. 工作记录软件app,可以写工作记录的便签软件
  4. Smali语言基础语法
  5. 读书-高性能MySQL 第三章
  6. 使用Arduino和HMC5883L磁力计的数字罗盘
  7. java毕业设计校园实习管理系统mybatis+源码+调试部署+系统+数据库+lw
  8. 中国500强企业是如何构建电子签章系统的?
  9. Spark编程基础-(一)大数据技术概述
  10. 向死而生的微信视频号,逆风翻盘的2020