gpt4 book ai didi

introspection - Vala VAPI 和 GObject Introspection 有什么关系?

转载 作者:行者123 更新时间:2023-12-04 05:41:38 30 4
gpt4 key购买 nike

首先,一些上下文:我是一名 Python 开发人员,他使用 PyGObject 编写了一个中型应用程序,利用 GObject Introspection 来访问 GSettings 等内容。我的一些 Python 对象实际上是 GObject.GObject 的子类,所以我是相当广泛地使用 GObject。

最近,某个库引起了我的注意,它在 GObject 中包装了一个 C 库(gexiv2,由 Shotwell/Vala 使用),但是它目前不支持自省(introspection)。我有兴趣为 gexiv2 添加自省(introspection)支持,以便我可以从 Python 访问它,但我什至不知道从哪里开始讨论这个话题。

当我研究自省(introspection)和 VAPI 时,我看到很多文档都提到了 VAPI 可以从自省(introspection)注释自动生成的事实......但是一个已经有 VAPI 但没有自省(introspection)的项目呢?是否可以在给定 VAPI 的情况下自动生成自省(introspection)注释?

谢谢。

最佳答案

VAPI 绑定(bind)不一定与 GObject 内省(introspection)相关。例如,有针对 POSIX、Linux、libudev 和其他绝对不是基于 GObject 的东西的 VAPI 绑定(bind)。没有将 VAPI 转换为 GObject 绑定(bind)的直接方法。

但是,如果您有 C 头文件和一个工作库,那么您通常可以从该库构建一个 GObject 内省(introspection)文件。对于 gexiv2,下载并构建源代码,然后执行:

g-ir-scanner -I gexiv2 gexiv2/gexiv2-{metadata,managed-stream,preview-properties,preview-image,log,startup}.h -n GExiv2 --library libgexiv2.la --pkg gobject-2.0

这将生成一个可以在 Python 中使用的 GIR 绑定(bind) (XML)。

关于introspection - Vala VAPI 和 GObject Introspection 有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197009/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com