静态库与共享库制作,及区别

1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档存储,用于静态链接。

在linux环境中,使用ar命令创建静态库文件,生成目标文件.o,然后生成静态库.a。

使用静态库生成的可执行文件放在目标板中可以直接运行。

2.共享库,也是动态库,是在可执行程序启动时加载到执行程序中,可以被多个执行程序共享使用,使用动态库编译生成的程序相对较小,但运行时需要库文件支持。

共享库的制作,使用的gcc命令,首先创建object文件,创建共享库的输入文件可为.c/.cpp文件,用命令参数-shared表示创建共享库。

使用动态库生成的可执行文件,需将生成的动态库也拷贝到目标板的连接文件目录。

它们的区别:

静态库被程序静态链接于编译时,而共享库被动态链接于运行时。

静态库中不能包含共享库,而共享库中可以包含静态库。

当静态库中某个模块更新后,需要重新编译链接生成相应的可执行文件;若共享库中某个模块更新了,只要接口没有改变,就不需要重新编译链接生成可执行文件。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值