静态库和动态库的生成和使用

本文详细介绍了静态库和动态库的区别、生成步骤及调用方法。静态库在编译时会被整合到目标程序中,生成的可执行文件独立运行,但体积较大。动态库(共享库)在运行时才加载,占用空间小,便于升级,但需依赖库文件。文章还涵盖了动态加载库的方法和注意事项。

一,静态库和动态库最本质的区别就是:这个库是否被编译进目标程序内部。

        动态库(共享)库和静态库的最大不同就是:链接共享库时并不会把被调用的代码指令复制到调用模块中,而是将被调用的代码指令在共享库中的相对地址嵌入到调用模块中。

二,静态库的生成和调用步骤

1,静态函数库

一般扩展名为(.a或.lib),这类的函数库通常扩展名为libxxx.a(linux下)或xxx.lib (windows下)。这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译。

2,静态库生成步骤

a.编写源程序xxx.c,如:vi add.c

b.只编译不链接生成目标文件xxx.o

如: cc -c add.c

c.生成静态库文件

ar -r/*插入*/ lib库名.a 目标文件名

ar -r libadd.a add.o

3,静态库调用步骤

a.编写测试源程序xxx.c,如:vi main.c

b.只编译不链接生成目标文件xxx.o

如: cc -c main.c

c.链接静态库文件生成可执行文件,链接方式有以下三种:

(1)直接链接

cc 目标文件 静态库文件名

如:cc main.o libadd.

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寒听雪落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值