为什么某些应用程序附带共享库?

时间:2016-09-13 13:15:03

标签: linux .so

我正在浏览/usr/lib/x86_64-linux-gnu并注意到某些应用程序(例如gedit)附带了共享对象文件。我理解为什么库附带共享库,但是独立应用程序有什么优势呢?

2 个答案:

答案 0 :(得分:1)

查看gedit示例,它附带以下共享库:

/usr/lib64/gedit/libgedit.so
/usr/lib64/gedit/plugins/libdocinfo.so
/usr/lib64/gedit/plugins/libfilebrowser.so
/usr/lib64/gedit/plugins/libmodelines.so
/usr/lib64/gedit/plugins/libsort.so
/usr/lib64/gedit/plugins/libspell.so
/usr/lib64/gedit/plugins/libtime.so

第一个libgedit.so用于可以重用gedit的编辑器组件的其他应用程序。

其余的都是gedit的插件。虽然它们是与应用程序一起构建和分发的,但它们是独立的插件,gedit也可以在没有它们的情况下工作。第三方插件也可以存在。

答案 1 :(得分:0)

如果有人想为这些应用程序编写插件,他们可以使用共享库可以使用的提供的API。

此外,如果在一个软件包中有多个可执行文件使用该库,则可以通过运送共享库来减少这些二进制文件的大小,而不是将其静态链接到每个二进制文件中。