静态库和动态库的区别

本文探讨了静态库与动态库在生成步骤、文件权限、链接方式、程序大小、执行效率、运行依赖及编译链接选择等方面的区别。静态库在编译时将代码合并到可执行文件中,而动态库则在运行时被加载,影响程序大小和执行效率。动态库的修改可能需要重新编译相关联的动态库和可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.生成静态库和动态库的步骤不一样

    静态库: ar -r lib静态库名.a  *.o

    动态库: gcc -shared *.o -o lib动态库名.so

2.静态库文件没有'x'权限  动态库有'x'权限 

3.链接静态库时,是把调用函数的指定用静态库中的二进制代码来替换

  链接动态库时,是直接在函数调用下嵌入函数在动态库中的相对地址

  使用静态库生成的可执行程序 比较大

  使用动态库生成的可执行程序 比较小

4.链接静态库,编译时比较慢,执行效率高

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值