动态库和静态库的概述
-
库
静态库(lib) 动态库(dll)
库就是一堆代码文件(二进制代码 .obj文件) 把需要的代码全放到一个文件里面 需要的时候就引用这个代码文件里面的代码
库的好处就是提供代码的复用性 类似Java中添加各种maven依赖使用其他jar包的功能 -
静态库
不放在内存中 直接拷贝到主函数的代码中 如果多个程序都使用了这个静态库 那么静态库的代码将会被拷贝多份
一旦生成二进制文件后 主函数就不在依赖静态库 因为静态库的代码已经拷贝到了主函数所在的程序中 相当于在同一个文件内调用
静态库不能调用动态库 -
动态库
放在内存里面(只有一份) 不拷贝到程序中 其他程序使用动态库的函数时 直接去内存里面访问动态库
依赖性强 如果缺少某个dll文件那么整个程序就会报错 一般用在客户端
例如一个游戏更新了dlc 那么只需要下载新的dll文件 而不是把更新后的游戏重新下载一遍