动态库和静态库的概述-动静态链接库-2

293 阅读1分钟

动态库和静态库的概述


  • 静态库(lib) 动态库(dll)
    库就是一堆代码文件(二进制代码 .obj文件) 把需要的代码全放到一个文件里面 需要的时候就引用这个代码文件里面的代码
    库的好处就是提供代码的复用性 类似Java中添加各种maven依赖使用其他jar包的功能

  • 静态库
    不放在内存中 直接拷贝到主函数的代码中 如果多个程序都使用了这个静态库 那么静态库的代码将会被拷贝多份
    一旦生成二进制文件后 主函数就不在依赖静态库 因为静态库的代码已经拷贝到了主函数所在的程序中 相当于在同一个文件内调用
    静态库不能调用动态库

  • 动态库
    放在内存里面(只有一份) 不拷贝到程序中 其他程序使用动态库的函数时 直接去内存里面访问动态库
    依赖性强 如果缺少某个dll文件那么整个程序就会报错 一般用在客户端
    例如一个游戏更新了dlc 那么只需要下载新的dll文件 而不是把更新后的游戏重新下载一遍