0

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

因此,假设我编写了一个新的 GObject (为简单起见,在同一手册中给出了示例),其中包含 C 源代码和头文件,编译它,并适当地安装它,将它定位在可以找到系统库的位置. 现在我想在 Python 程序中实例化和使用该对象。或 Perl 程序。甚至是 Java 程序。或任何其他具有可用 glib 绑定​​的编程语言。这到底是怎么做到的?

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

4

2 回答 2

1

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

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

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

于 2013-07-03T06:22:29.157 回答
1

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

显然,所有语言都是不同的,但既然您听起来对 Python 最感兴趣…… Python GTK+ 3 教程以 GTK+ 为例解释了该过程。

于 2013-07-03T20:09:05.703 回答