zoukankan      html  css  js  c++  java
  • 静态链接库和动态链接库优缺点

    1 静态链接库:静态链接库是一个或者多个obj文件打包,链接器从静态链接库获取所有引用的函数,并将库同代码一起放到可执行文件中。

    优点 :

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

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

    2 动态链接库:(dll)是作为共享函数库的可执行文件。

    优点: 

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

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

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

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

    3 不足之处

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

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

    4.静态链接库不能再包含其他动态链接库或者静态库,而动态链接库还可以包含其他的动态或静态链接库。

  • 相关阅读:
    51Nod1528 加号分配
    51Nod1679 连通率
    51Nod1679 连通率
    51Nod1426 沙拉酱括号
    51Nod1426 沙拉酱括号
    51Nod1678 lky与gcd
    51Nod1556 计算
    c学习第2天
    Stopwatch秒表的使用
    数据从.txt文件中导入数据库
  • 原文地址:https://www.cnblogs.com/dj0325/p/8493995.html
Copyright © 2011-2022 走看看