【发布时间】:2019-01-09 13:15:06
【问题描述】:
我正在尝试编写一个 VAPI 文件以在 Vala 中使用 libui (https://github.com/andlabs/libui)。 这是我的第一次尝试:
[CCode (cheader_filename = "ui.h")]
namespace LibUi {
[CCode (cname = "uiInitOptions", cprefix = "ui", has_type_id = false)]
public struct uiInitOptions {
size_t Size;
}
[CCode (cname = "uiInit", has_type_id = false)]
public char uiInit(uiInitOptions options);
[CCode (cname = "uiMain", has_type_id = false)]
public void uiMain();
[CCode (cname = "uiQuit", has_type_id = false)]
public void uiQuit();
}
这是vala中的测试代码:
using LibUi;
public static int main (string[] args) {
uiInitOptions o = uiInitOptions();
uiInit(o);
return 0;
}
使用“valac --vapidir .--pkg libui main.vala”编译
带来这个错误:
main.vala.c:(.text+0x3c): undefined reference to `uiInit'
在 libui 的示例 C 代码中是这样的:
int main(void)
{
uiInitOptions o;
const char *err;
memset(&o, 0, sizeof (uiInitOptions));
err = uiInit(&o);
...
}
如何在 vala 中制作这个 memset 内容或将其构建到 vapi 文件中?
【问题讨论】:
-
欢迎来到stackoverflow。您在这里同时针对至少两个问题提出问题。以后每一个问题,请只问一个问题。它有助于更好地组织网站。