美文网首页
动态、静态链接库

动态、静态链接库

作者: 乂滥好人 | 来源:发表于2019-02-14 15:25 被阅读2次

库(Library)就是一段编译好的二进制代码,加上头文件就可以使用。

静态库

静态链接库(Mac 下的 .a)。之所以叫做静态,是因为静态库在编译的时候会被直接拷贝一份,复制到目标程序里,这段代码在目标程序里就不会再改变了。

  • 优点:
    1、编译完成之后,库文件实际上就没有作用了。目标程序没有外部依赖,直接就可以运行。
    2、代码装载速度快,执行速度略比动态链接库快。
  • 缺点:
    1、会使用目标程序的体积增大。
    2、包含相同的公共代码,造成浪费,扩展性较差。
动态库

动态链接库(Mac 下的 .dylib)。与静态库相反,动态库在编译时并不会被拷贝到目标程序中,目标程序中只会存储指向动态库的引用。等到程序运行时,动态库才会被真正加载进来。

  • 优点:
    1、不需要拷贝到目标程序中,不会影响目标程序的体积,而且同一份库可以被多个程序使用(因为这个原因,动态库也被称作共享库)。同时,编译时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码。
    2、更加节省内存并减少页面交换。
    3、可维护性和可扩展性高。
    4、适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。
  • 缺点:
    1、动态载入会带来一部分性能损失,使用动态库也会使得程序依赖于外部环境。
    2、如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行(Linux 下喜闻乐见的 lib not found 错误)。

相关文章

  • Linux链接库

    动态链接库(共享链接库) 杂项 生成.o文件 生成.so 使用动态库 静态链接库 杂项 生成.a 查看.a 使用静态库

  • 静态链接库和动态链接库

    静态链接库和动态链接库都是为了共享代码。如果使用静态链接库,lib文件中的指令就会被包含在exe中。若使用动态链接...

  • Java 调用本地代码库

    什么是动态链接库 C/C++编译出来的库有两种:静态链接库和动态链接库。 静态库后缀名在Windows上是.lib...

  • 动态库&静态库

    查看程序依赖的动态库 查看符号表、函数名 动态链接库和静态链接库的相互包含问题及实现https://blog.cs...

  • 创建静态库

    iOS深入学习(创建静态库static library) 库包含静态库和动态链接库,他们之间区别是:静态库可以编译...

  • Windows下lib操作说明

    【lib是什么】 Windows下有静态链接库(lib)和动态链接库(dll)两种共享代码的方式。 通常所说的li...

  • 动态、静态链接库

    库(Library)就是一段编译好的二进制代码,加上头文件就可以使用。 静态库 静态链接库(Mac 下的 .a)。...

  • C 动态与静态链接库

    C 动态与静态链接库 一、动态库 纯 C 情况下 add.c 文件/* add.c */#include "add...

  • 运行循环- Runloop

    程序启动的原理和过程 start -> (加载framework,动态静态链接库,启动图片,Info.plist等...

  • C-3

    DLL-动态链接库 lib-静态链接库 编译成obj文件之后,将多个obj文件连接成lib文件。当程序用到lib里...

网友评论

      本文标题:动态、静态链接库

      本文链接:https://www.haomeiwen.com/subject/kupeeqtx.html