创建插件管理系统

时间:2012-04-29 06:15:55

标签: c linux x11

我为Conky之类的内容创建插件管理系统有哪些选择。我感兴趣的是为Conky创建一个系统,允许我创建新功能并通过共享库添加它们。我觉得这样可以更容易为Conky创建新的配置和变量,而无需从源代码重新编译,并允许独立于Conky共享这些新功能。创建像这样的系统的一般起点是什么?共享库是最佳选择还是更好的选择。

我意识到Conky已经具备了与此类似的能力,能够调用系统shell并返回所需的任何内容,但是我想添加的许多函数会让Conky陷入困境,除非直接写入。

2 个答案:

答案 0 :(得分:0)

看看dlopen()。

以下是一些很好的教程:http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

我做了类似于我在C中从头开始编写的IRC机器人。我使用dlopen()来做这样的事情。 机器人可以编译它自己的新模块并在运行时加载它们:)

答案 1 :(得分:0)

考虑到conky已经在其某些模块中使用了GLib,你可以看一下GLib的模块系统(GModule):http://developer.gnome.org/glib/stable/glib-Dynamic-Loading-of-Modules.html

另一个基于它的便利库是libpeas:http://developer.gnome.org/libpeas/stable/