为什么一些linux基础静态库(如libc.a)里面包含那么多目标文件.o呢? 为什么不将这些.o文件进行提前糅合呢?

这篇博客探讨了Linux基础静态库如libc.a中包含多个.o文件而非单一整体的原因。这样做是为了降低耦合度,避免在链接时不必要的函数库被引入,从而节省时间和空间。例如,使用printf时,若所有相关函数库预先糅合,会导致vfprintf.o、vprintf.o等未使用的函数库被无谓地链接进去。
摘要由CSDN通过智能技术生成

        我们来看个现象:

taoge@localhost Desktop> ar -vt /usr/lib/libc.a | grep printf.o
rw-r--r-- 399/399  28564 Oct 26 00:26 2010 vfprintf.o
rw-r--r-- 399/399    988 Oct 26 00:26 2010 vprintf.o
rw-r--r-- 399/399   1360 Oct 26 00:26 2010 reg-printf.o
rw-r--r-- 399/399    984 Oct 26 00:26 2010 fprintf.o
rw-r--r-- 399/399   1016 Oct 26 00:26 2010 printf.o
rw-r--r-- 399/399    972 Oct 26 00:26 2010 snprintf.o
rw-r--r-- 399/399    988 Oct 26 00:26 2010 sprintf.o
rw-r--r-- 399/399    992 Oct 26 00:26 2010 asprintf.o
rw-r--r-- 399/399    960 Oct 26 00:26 2010 dprintf.o
rw-r--r-- 399/399  27488 Oct 26 00:26 2010 vfwprintf.o
rw-r--r-- 399/399   1440 Oct 26 00:26 2010 fxprintf.o
rw-r--r-- 399/399   1308 Oct 26 00:27 2010 iovsprintf.o
rw-r--r-- 399/399    964 Oct 26 00:27 2010 fwprintf.o
rw-r--r-- 399/399    972 Oct 26 00:27 2010 swprintf.o
rw-r--r-- 399/399    992 Oct 26 00:27 2010 vwprintf.o
rw-r--r-- 399/399    996 Oct 26 00:27 2010 wp
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值