前言

很多概念表达没有直接对比,我现在将使用表格的方式对比静态库和动态库的区别。

区别静态库动态库
拓展名一般为a一般为so
共享谁用谁拿,自己编译多个应用程序可以使用同一个动态库
内存使用如果多个应用程序使用的话,会被装载多次,浪费内存启动多个应用程序的时候,只需要将动态库加载到内存一次即可
变更影响静态函数库改变了,那么你的程序必须重新编译动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便
链接方法#pragma comment(lib, "test.lib")LoadLibrary()/GetProcessAddress()FreeLibrary()
概念/加载方式编译时期(compile time)完成,程序 在运行 时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray)直到真正调用动态库代码时,载入程序才计算(被调用的那部分)动态代码的逻辑地址,然后等到某个时候,程序又需要调用另外某块动态代码时,载入程序又去计算这部分代码的逻辑地址

标签: 代码, lib, 函数, 编译, 前言, 程序, 动态, 静态, 动态库

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

发送一条友善的评论

  • 目录