动态库、静态库的创建及使用

本文介绍了Linux下静态库和动态库的概念,它们的区别在于载入时机不同,静态库在编译时链接,生成的可执行文件大但运行独立;动态库在运行时载入,节省空间但依赖外部库。静态库后缀为.a,动态库为.so。文章详细讲解了静态库和动态库的创建与使用命令,并阐述了如何让程序找到动态库的三种方法。
摘要由CSDN通过智能技术生成

1. 库

将自己写的代码封装在一个库中,方便其他人使用并且对代码还有一定的保密作用

库是一种可执行代码的二进制形式,可以被操作系统载入内存执行

Linux 下的库有两种:静态库 和 动态库 (共享库)

库是别人写好的现有的,成熟的,可以复用的代码,你可以使用但要记得遵守许可协议。
现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。动态链接库的名字形式为 “libxxx.so” 后缀名为 “.so


2. 静态库 与 动态库 区别

静态库与动态库被载入的时刻不同

  1. 静态库对函数库的链接是放在编译时期(compile time)完成的
    动态库把对一些库函数的链接载入推迟到程序运行的时期(runtime)

  2. 静态库是在链接阶段,所有相关的目标(对象)文件(object file)与牵涉到的库(library)被链接合成一个可执行文件(executable file)
    动态库是在链接阶段,在目标二进制文件中创建一个库函数表单,指定链接的库函数。

  3. 使用静态库编译,最终生成的可执行文件较大,浪费空间和资源,但执行时与库函数无关,运行速度、调用函数的速度快。
    而使用动态库编译,生成的可执行文件较小,但执行时候需要动态库载入内存,需要去外部调用函数,所以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值