// Point.vala
namespace Test {
class Point {
public const int MY_CONST = 123;
public float x { get; set; }
public float y { get; set; }
}
}
有一个 vala 源文件,'Point.vala'
- --vapi
valac --vapi=Point.vapi --library=point -X -shared Point.vala
:
// Point.vapi
namespace Test {
}
空的...
- --内部-vapi
valac --internal-vapi=Point.vapi --header=Point.h --internal-header=Point_internal.h --library=point -X -shared Point.vala
:
// Point.vapi
namespace Test {
[CCode (cheader_filename = "Point_internal.h")]
internal class Point {
public const int MY_CONST;
public Point ();
public float x { get; set; }
public float y { get; set; }
}
}
它看起来很完美,对我有用
- --fast-vapi
valac --fast-vapi=Point.vapi --library=point -X -shared Point.vala
:
// Point.vapi
using GLib;
namespace Test {
internal class Point {
public const int MY_CONST = 123; // error
public Point ();
public float x { get; set; }
public float y { get; set; }
}
}
error: External constants cannot use values
使用此 vapi 时,这会引发错误
Q1:确切的区别是什么?以及为什么有这些选项。
Q2 : 为了创建共享库,我应该使用 --internal-vapi 吗?