静态库与动态库的区别及创建

一,静态库与动态库的区别

静态库的优缺点

(1)编译时把静态库中的相关代码复制到可执行文件中,运行时不需要链接库

(2)程序运行时无需加载库,运行速度快(优点)。

(3)占用更多的磁盘和内存空间,静态库升级后,程序需要重新编译,库升级不方便(缺点)

动态库的优缺点

(1)编译时仅记录使用哪个共享库(动态库)中的哪个符号(函数),不复制共享库中的相关代码,运行时加载共享库

(2)程序不包含库中的代码,代码尺寸小(优点)

(3)库升级方便,无需重新编译(优点)

(4)使用更广泛

二,静态库与动态库的创建

静态库的创建

1、编写源代码

2、将源代码编译生成相对应的.o文件

3,静态库的命名规范lib静态库名.a

ar :库文件维护程序的名称

c:创建一个库,不管是否存在,都将创建

r:在库中插入模块

s:创建目标文件索引,这个在创建较大的库的时候能加快时间编译

4,编译

 

5,运行

动态库的创建 

1、编写源代码

2、-fPIC 生成与位置无关代码,可以在任何位置执行

 3,创建共享库

共享库的命名规范

lib库名.so.版本号(数字)

4、创建软链接

创建软链接的目的时为了能够让我们的编译器在编译的时候找到共享库

5、链接共享库

 

 6、运行

7,将共享库复制到系统库路径下 /usr/lib

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值