我知道插件是负责特定功能并加载以供应用程序使用的组件。
Linux中的共享对象库(.so)和Windows中的.dll是应用程序在运行时加载的库。
我想了解如果.dll / .so总是插件的话。是所有插件.dll / .sos?
答案 0 :(得分:1)
实际上,.dll
和.so
是动态库。还有其他类型的库名为静态库。在Linux中,他们的扩展名为.a
。
程序员倾向于使用库来轻松维护代码。此外,如果库将共享多个应用程序,则会因主内存使用而选择共享库。
您可以将此逻辑应用于包含插件的结构。如果代码段仅由应用程序的单个进程使用,则可以使用静态库作为插件。但是,如果代码将由多个进程共享,则应使用共享库,即使这些进程是同一应用程序的实例。
使用共享库作为插件时,不得将库包含为已知方法,也不得将可执行文件直接链接到库。相反,您必须使用libdl
。请查看here并查找dynamic loading
。