Linux基础 | 静态库与共享库


一、库文件是什么?

库是预先编译好的方法的集合。
在这里插入图片描述

二、共享库与静态库的区别

Linux上静态库一般以.a结尾。
动态库一般以.so结尾

三、共享库与静态库的创建方法

1.静态库的生成方法

在这里插入图片描述

2.共享库的生成方法

在这里插入图片描述

三、共享库与静态库的使用实例

静态库
在这里插入图片描述
共享库
在这里插入图片描述
需要注意的是此时main函数并不能运行成功,因为只是在main程序中标记了共享库中的方法,当main函数执行时需要去/lib或者/usr/lib文件中去寻找所使用的库,找到才可以执行此函数。因此此时需要把foo库放入到/usr/lib的文件夹下面。
在这里插入图片描述

ldd命令可以查看函数使用了哪个库文件。

总结

静态库与共享库的优缺点:
静态库在函数编译的时候就会把使用到的方法放入该函数中,完成编译后,在静态库不存在的情况下也可以运行,但是会消耗一定的空间,共享库则是在运行时去寻找所使用的方法,会节省程序所占空间,但是当共享库不存在时,改函数就无法执行。同时,在共享库和静态库名字相同时有限选择使用共享库。
共享库方便维护,当库文件发生变化时只需要要对库进行重编译,不需要对程序进行编译;而使用静态库需要将程序也重新编译一边。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值