【问题标题】:Creating Plugin Management System创建插件管理系统
【发布时间】:2012-04-29 06:15:55
【问题描述】:

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

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

【问题讨论】:

  • 第一个起点:学习如何使用dlopen()

标签: c linux x11


【解决方案1】:

看看 dlopen()。

这里有一些不错的教程:http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

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

【讨论】:

    【解决方案2】:

    考虑到conky的部分模块已经使用了GLib,不妨看看GLib的模块系统(GModule):http://developer.gnome.org/glib/stable/glib-Dynamic-Loading-of-Modules.html

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2011-12-17
      • 1970-01-01
      • 2012-06-11
      • 2010-12-09
      • 1970-01-01
      • 2013-11-19
      相关资源
      最近更新 更多