我有一个用Vala编写的库,它总是很好地为自己生成一个.vapi文件,我认为这是一个使用valac的免费操作,但我对此并不乐观。我去尝试在我的configure.ac文件中使用configure.ac,在configure.ac中使用关联的VAPIGEN_MAKEFILE,现在我得到:
error: The type name `GLib.TypeInstance' could not be found我相应的.gir文件包含:
<field name="parent_instance">
<type name="GObject.TypeInstance" c:type="GTypeInstance"/>
</field>因此,这个错误似乎是有意义的,因为我无法在任何GObject.TypeInstance文件中找到.vapi类/结构,但是GTypeInstance位于一个GLib头中。
如果我已经用Vala写了所有的东西,我应该这样做吗?这有可能是从瓦皮号上丢失的吗?
编辑:可能是因为我没有派生GLib.Object,我认为这是隐式的。仍然试图修复其他防止这一点的方法,但一旦完成,我将更新它,以说明它是否真正重要。
发布于 2016-06-13 23:01:37
要从Vala程序生成VAPI文件,只需将--vapi选项与valac一起使用,例如:
valac --vapi my_library_name.vapi my_library.vala
根据您所描述的,我认为您正在使用GObject生成一个GIR ( valac内省存储库)文件,然后使用vapigen创建VAPI文件。vapigen是Vala的一部分,在Vala源代码中维护,但是它是一个生成VAPI文件以绑定到非Vala项目的工具。如果非Vala项目分发GIR文件,则绑定非常容易。
在使用vapigen时,您需要给出它使用的包,因此您需要检查是否包含正确的pkg-config标志,例如:
vapigen --pkg glib-2.0 --pkg gobject-2.0 my_library.gir
另一种可能是在Vala中没有GTypeInstance的绑定。我看了一眼,什么也找不到。
https://stackoverflow.com/questions/37798020
复制相似问题