android .a .so区别,.so,.la和.a库文件有什么区别?

.so文件是动态库。后缀代表“共享对象”,因为所有与该库链接的应用程序都使用同一文件,而不是在生成的可执行文件中进行复制。

.a文件是静态库。后缀代表“存档”,因为它们实际上只是原始.o目标文件的存档(使用ar命令制作- 该命令的前身tar现在仅用于制作库)。

.la文件是GNU“ libtools”软件包用来描述组成相应库的文件的文本文件。您可以在以下问题中找到有关它们的更多信息:libtool的.la文件有什么用?

静态库和动态库各有利弊。

静态专业人士:用户始终使用您在应用程序中测试过的库版本,因此不会出现任何令人惊讶的兼容性问题。

静态缺点:如果库中解决了问题,则需要重新分发应用程序以利用它。但是,除非它是一个用户可能自己更新的库,否则您可能仍然需要这样做。

Dynamic Pro:您的进程的内存占用量较小,因为用于库的内存在使用该库的所有进程之间摊销。

动态专业版:库可以在运行时按需加载;这对插件很有用,因此您无需在编译和安装软件时选择要使用的插件。可以随时添加新插件。

动态缺点:该库可能在​​某人试图安装该应用程序的系统上不存在,或者他们的版本可能与该应用程序不兼容。为了减轻这种情况,应用程序包可能需要包括库的副本,因此可以在必要时安装它。包管理器通常也可以缓解这种情况,包管理器可以下载并安装任何必要的依赖项。

动态库对于系统库尤其有用libc。这些库通常需要包含依赖于特定操作系统和版本的代码,因为内核接口已更改。如果将程序与静态系统库链接,则该程序将仅在为此库版本编写的OS版本上运行。但是,如果您使用动态库,它将自动获取运行在系统上的库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值