动态链接库.so和静态链接库.a的区别

发布时间:2020-06-02 21:12:52 作者:SherryX
来源:网络 阅读:1627
静态链接库:

  •扩展名:.a
  •编译行为:在编译的时候,将函数库直接整合到执行程序中(所以利用静态库编译生成的文档会更大)
 •独立执行的状态:编译成功的可执行文件可以独立运行,不需要再向外部要求读取函式库的内容
 •更新:如果函式库更新,需要将整个项目程序重新编译
 •好处:方便程序移植

动态链接库:

  •扩展名:.so
  •编译行为:在编译的时候,程序里面仅有指向动态库所在的指标,其内容并没有被整合到执行文件中。所以,在程序运行之初不需要加载所有代码,只有在用到函式库中的某个函数时,程序才会去读取动态库的内容(所以利用动态库编译生成的文档会小些)
 •独立执行的状态:编译成功的可执行文件不能独立执行,函式库必须存在,而且库所在的目录也不能改变。(移动之后,必须重新编译链接)
  •更新:如果函式库更新,不需要重新编译,因为执行文件里仅有库的位置(前提是函式库名称、位置都没变)
  •好处:
  1) 只保留接口,将动态库和程序代码独立,提高代码的可复用性,降低程序耦合度。
  2) 节约内存,减少页面交换。
比如:计算机同时运行多个程序,都应用static.a,在内存中就会存在多份拷贝。一旦程序数量过多,就有可能内存不足。
动态链接库.so和静态链接库.a的区别
而在动态库在内存中只存在一份拷贝,不会浪费空间。
动态链接库.so和静态链接库.a的区别

推荐阅读:
  1. C语言之静态链接库和动态链接库
  2. 动态链接库与静态链接库

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

共享库 动态链

上一篇:Android开发图片开源框架

下一篇:MongoDB修改数据update和save方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》