首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Vala库生成Vapi文件

为Vala库生成Vapi文件
EN

Stack Overflow用户
提问于 2016-06-13 19:49:25
回答 1查看 511关注 0票数 1

我有一个用Vala编写的库,它总是很好地为自己生成一个.vapi文件,我认为这是一个使用valac的免费操作,但我对此并不乐观。我去尝试在我的configure.ac文件中使用configure.ac,在configure.ac中使用关联的VAPIGEN_MAKEFILE,现在我得到:

代码语言:javascript
复制
error: The type name `GLib.TypeInstance' could not be found

我相应的.gir文件包含:

代码语言:javascript
复制
<field name="parent_instance">
  <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
</field>

因此,这个错误似乎是有意义的,因为我无法在任何GObject.TypeInstance文件中找到.vapi类/结构,但是GTypeInstance位于一个GLib头中。

如果我已经用Vala写了所有的东西,我应该这样做吗?这有可能是从瓦皮号上丢失的吗?

编辑:可能是因为我没有派生GLib.Object,我认为这是隐式的。仍然试图修复其他防止这一点的方法,但一旦完成,我将更新它,以说明它是否真正重要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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的绑定。我看了一眼,什么也找不到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37798020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档