Linux | 静态库与共享库及其制作

本文详细介绍了Linux中的静态库与共享库。静态库(如.lib.a)在编译时会将代码复制到目标文件,不依赖运行时库,但程序体积大;共享库(如.lib.so)在运行时动态加载,占用空间小,便于版本升级,但需要运行时依赖库文件。创建静态库使用`ar`命令,共享库使用`gcc -shared`。静态库在编译时需指定`-l`选项,共享库在运行时依赖`LD_LIBRARY_PATH`。

一、库

什么是库?

库是预先编译好的方法(函数)的集合。 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于Windows和Linux本质不同,因此二者库的二进制是不兼容的。分为两种形式:静态库(.a .lib)和共享库也称动态库(.so .dll)。

  • Linux存放库文件的标准路径:/lib、/usr/lib
  • 存放库文件的标准路径:/usr/include
  • 存放命令:/usr/bin、/bin

二、静态库

什么是静态库?

静态库指将所有相关的目标文件打包成为一个单独的文件,即静态库文件,其缺省扩展名是 .a 。链接静态库就是将库中被调用的代码复制到调用模块中。静态库占用空间大,库中代码一旦修改必须重新链接。使用静态库的代码在运行时无需依赖库,且执行效率高
静态库命名规范,必须是*“lib[your_library_name].a”*:lib为前缀,中间是静态库名,扩展名为.a

静态库的创建与使用

add.c

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZY-JIMMY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值