1 静态链接库的优点

(1) 代码装载速度快,执行速度略比动态链接库快;

(2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。

2 动态链接库的优点 

(1) 更加节省内存并减少页面交换;

(2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;

(3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;

(4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。

3 不足之处

(1) 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;

(2) 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;速度比静态链接慢。当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。

静态链接库与动态链接库的优缺点相关推荐

  1. 静态链接库,动态链接库【滴水逆向三期48笔记】

    在开发过程中,我们通常会有很多函数,需要多次使用或在不同的程序中使用该函数,也有可能我们会将我们写好的函数给别人使用,但是我们又不想给他源代码,毕竟代码是我们花了很多功夫写出来的,那么我们如何不发给其 ...

  2. 静态链接库与动态链接库 (二)动态链接库的编译与使用

    上一篇文章里大概描述linux下静态链接库的编译与使用,下面讲动态链接库的编译与使用方法. 1. 什么是动态链接库 所谓动态链接库,是指编译的时候不会把程序引用到的库插入到执行程序里,而是在执行时候才 ...

  3. Linux下的静态链接库和动态链接库编程

    Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...

  4. Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)

    from: Makefile常用万能模板(包括静态链接库.动态链接库.可执行文件) 本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接 ...

  5. 静态链接库和动态链接库(转)

    我们可以创建一种文件里面包含了很多函数和变量的目标代码,链接的时候只要把这个文件指示给链接程序就自动地从文件中查找符合要求的函数和变量进行链接,整个查找过程根本不需要我们操心. 这个文件叫做 &quo ...

  6. 静态链接库、动态链接库和动态加载库

    前言 静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标 ...

  7. c语言库文件是dll还是lib,C语言之静态链接库与动态链接库(2)

    我们发现,无论是静态链接库还是动态链接库,最后都有lib文件,那么两者区别是什么呢? 其实,两个是完全不一样的东西.静态库对应的lib文件叫静态库,动态库对应的lib文件叫导入库.实际上静态库本身就包 ...

  8. cnsl是什么意思_VS2010下创建静态链接库和动态链接库

    VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...

  9. linux下静态链接库和动态链接库

    关于链接库的知识,网上太多资料了,但是并不代表我很熟悉.今天遇到了 一个问题,就是由于静态链接库和ubuntu系统不兼容导致的,虽然花了点时间才搞定 但是,其中暴露的问题也不少. 没有区分好静态链接库 ...

最新文章

  1. TechEmpower 13轮测试中的ASP.NET Core性能测试
  2. 网络故障处理手册大全
  3. 帮你躲坑:pip install tensorflow 报错怎么办,import tensorflow 报错怎么办?
  4. 创建一个Django项目
  5. 基于vue.js仿淘宝收货地址,并设置默认地址
  6. Windows Edge 下载软件被检测到病毒无法下载
  7. JNI入门与进阶,JNI调用外部非标准程序SO【一】
  8. 超级详细VM16虚拟机安装CentOS 6.8创建虚拟机
  9. Ubuntu系统耳机没声音
  10. 基于卷积神经网络的猫狗识别
  11. 全国大学生信息安全大赛线下赛crypto3题解
  12. 机器学习 贝叶斯方法_机器学习中的常客与贝叶斯方法
  13. matlab中绘制图像
  14. Modbus Slave学习笔记
  15. Odoo免费开源ERP:流程型生产制造行业信息化解决方案
  16. Togaf 中的本手和妙手
  17. 从YouTube删除不合适的评论
  18. python:疫情数据可视化
  19. FANUC机械手与康耐视相机搭配使用走socket通讯使用手册
  20. MIMO SISO MISO SIMO通俗解释

热门文章

  1. C++程序设计基础(8)main函数
  2. JNI中java类型的简写
  3. 第二百五十天 how can I 坚持
  4. java中过滤器Filter的使用总结【转载】
  5. linux权限补充:rwt rwT rws rwS 特殊权限
  6. 终于把网站最后一个模块了结了
  7. 汇编实验 分类统计字符个数(debug中查看统计结果)
  8. 这些AI应用不简单,Keep首场技术开放日限时报名ing!
  9. 匹配两位小数,js正则
  10. ZooKeeper第三方客户端CuratorFramework简介