我正在尝试使用 pygi 和 gobject introspection 创建到 vala 库的 python 绑定。但是,我在生成 GIR 文件时遇到问题(我计划随后将其编译为 typelib 文件)。根据文档 valac 应该支持生成 GIR 文件。
编译以下内容
你好世界.vala
public struct Point {
public double x;
public double y;
}
public class Person {
public int age = 32;
public Person(int age) {
this.age = age;
}
}
public int main() {
var p = Point() { x=0.0, y=0.1 };
stdout.printf("%f %f\n", p.x, p.y);
var per = new Person(22);
stdout.printf("%d\n", per.age);
return 0;
}
用命令
valac helloworld.vala --gir=Hello-1.0.gir
不会创建Hello-1.0.gir
正如人们所期望的那样归档。如何生成 gir 文件?
要生成 GIR,必须将要导出的函数放在同一命名空间下
你好.瓦拉
namespace Hello {
public struct Point {
public double x;
public double y;
}
public class Person {
public int age = 32;
public Person(int age) {
this.age = age;
}
}
}
public int main() {
var p = Hello.Point() { x=0.0, y=0.1 };
stdout.printf("%f %f\n", p.x, p.y);
var per = new Hello.Person(22);
stdout.printf("%d\n", per.age);
return 0;
}
然后运行以下命令。
valac hello.vala --gir=Hello-1.0.gir --library Hello-1.0
这会在当前目录生成一个girl和一个vape文件。
然后要生成 typelib 文件,需要运行
g-ir-compiler --shared-library=hello Hello-1.0.gir -o Hello-1.0.typelib
假设共享库已编译为libhello.so
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)