首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.so、.la和.a库文件有什么不同?

.so、.la和.a库文件有什么不同?
EN

Stack Overflow用户
提问于 2012-09-02 23:38:11
回答 1查看 139.3K关注 0票数 264

我知道.so文件是一种动态库(许多线程可以共享这样的库,因此不需要在内存中有多个副本)。但是.a.la有什么不同呢?这些都是静态库吗?

如果动态库比静态库有很大的优势,为什么还有很多静态库呢?我应该在什么时候尝试在.so.a中构建代码

代码语言:javascript
复制
[mirror@home ins_openvpn]$ ls lib/openvpn/plugins/ -l
total 96
-rw-r--r-- 1 mirror mirror 22892 Sep  2 23:25 openvpn-plugin-auth-pam.a
-rwxr-xr-x 1 mirror mirror   931 Sep  2 23:25 openvpn-plugin-auth-pam.la
-rwxr-xr-x 1 mirror mirror 23621 Sep  2 23:25 openvpn-plugin-auth-pam.so
-rw-r--r-- 1 mirror mirror 17228 Sep  2 23:25 openvpn-plugin-down-root.a
-rwxr-xr-x 1 mirror mirror   932 Sep  2 23:25 openvpn-plugin-down-root.la
-rwxr-xr-x 1 mirror mirror 18805 Sep  2 23:25 openvpn-plugin-down-root.so
EN

回答 1

Stack Overflow用户

发布于 2021-07-14 17:41:46

在给定答案的基础上,还可以说静态库就像一个目标文件的集合。当调用静态库中的函数或任何其他内容时,链接器将在库中搜索被引用的项,并将定义被引用项的对象文件添加到可执行文件中。另一方面,共享库就像是由所有其他目标文件组成的单个大目标文件。因此,如果在共享库中调用符号,则所有目标文件都会在可执行文件中引用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12237282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档