GObject跨多种语言的内省

问题描述 投票:1回答:2

The Wiki page of the old PyGTK 2.8 binding声明一个用Python编写的正确对象

也应该可以从C代码,甚至其他语言绑定中轻松使用。

但是PyGTK已经过时了,应该被PyGObject取代。是否可以将语言与更新的基于内省的绑定混合使用?例如,我可以在Vala中编写gobject类,使用Python扩展它并在Java中使用结果吗?

programming-languages gobject gobject-introspection
2个回答
1
投票

我写了一个基于C的插件库,基本上就是这个。它确实使用GObject Introspection,理论上它是可能的。现在有C / C ++,Python,Lua和SeedJS在同一个内存空间中一起播放,但我没有尝试在其他语言中继承或调用除C以外的任何东西。

无论如何,如果你愿意,可以随时修补。 GPlugin


0
投票

理论上,是的,它应该是可能的。在实践中,不,不是真的。混合多个这样的运行时非常困难,并且非常浪费资源。如果您希望代码可以在多种语言中使用,则需要在C或Vala中编写代码。或C ++,只要您公开C API。

你真正得到的最接近的东西就是libpeas,你可以在其中创建明确定义的扩展点,然后可以用你选择的任何语言自由地实现这些扩展。

© www.soinside.com 2019 - 2024. All rights reserved.