【问题标题】:How to export GObjects to various languages如何将 GObject 导出为各种语言
【发布时间】:2013-07-03 06:15:59
【问题描述】:

GObject Reference Manual 声明 GObject 系统旨在通过使用一些通用胶水代码将用 C 编写的函数导出到其他语言。还要注意的是,这种胶水显式地存在于 perl 和 python 中。然而,省略了如何找到以及如何使用它。

所以,假设我已经编写了一个新的 GObject (for the sake of simplicity, the example given in the same manual),其中包含 C 源代码和头文件,编译它,并适当地安装它,将它定位在可以找到系统库的位置。现在我想在 Python 程序中实例化和使用该对象。或 Perl 程序。甚至是 Java 程序。或任何其他具有可用 glib 绑定​​的编程语言。这究竟是如何做到的?

请注意,我想直接使用该对象,很可能是通过已经存在的通用胶水代码。我知道使用 DBus 从正在运行的 C 程序中导出对象并使用 Python 访问它的可能性。但我没有寻找 IPC 解决方案。编译后的 C 库对象应或多或少直接导出到另一种编程语言。

【问题讨论】:

    标签: c glib


    【解决方案1】:

    您正在寻找GObject Introspection。正确设置后,您可以很容易地使用 PyGObject (Python)、Gjs (JavaScript)、Vala 等。

    显然,所有语言都不同,但由于您听起来对 Python 最感兴趣...Python GTK+ 3 Tutorial 以 GTK+ 为例解释了该过程。

    【讨论】:

      【解决方案2】:

      下面是几个例子。 GType 和 GObject 是标准,不提供胶水代码。您只需要寻找您想要使用的语言,看看是否有人已经实现了胶水。如果没有,也许你可以:)

      https://wiki.gnome.org/PyGTK/WhatsNew28

      http://search.cpan.org/~rmcfarla/Glib-1.020/GType.xs

      【讨论】:

      • 正确但已过时,因为 Gobject Introspection 旨在替换这些绑定。尽管如此,这些链接还是给了another question
      猜你喜欢
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多