为什么webkit-1.0和gtk + -3.0在.vapi文件中有超过900个相同的符号

时间:2012-08-12 17:21:08

标签: vala vapi

正如标题所说我的问题是我尝试同时使用gtk 3和webkit 1。

我正在关注此示例https://live.gnome.org/Vala/WebKitSample

除了我使用gtk 3而不是2。

我正在使用valac 0.16.0

我现在已经注意到错误是Gdk 2和Gdk 3相同的符号。

这似乎是一种解决我的问题的方法link 但它是非标准的。

没关系,我已经用捆绑的webkitgtk修复了它。

1 个答案:

答案 0 :(得分:1)

你不能将库webkit-1.0与gtk + -3.0一起使用,因为webkit-1.0依赖于与gtk + -3.0和gdk-3.0冲突的gtk + -2.0和gdk-2.0。你必须使用与webkit-1.0具有相同API的库webkitgtk-3.0,但它依赖于gtk + -3.0和gdk-3.0。

由于vala(bug 676249)未附带webkigtk-3.0绑定,因此您必须创建自己的绑定(按照the mentioned e-mail中的说明操作)并告诉valac您的webkigtk-3.0.vapi文件所在的位置位于(--vapidir=.)。

$ ls
webkitgtk-3.0.deps  webkitgtk-3.0.vapi  webkit-sample.vala
$ valac --vapidir=. --pkg gtk+-3.0 --pkg webkitgtk-3.0 --thread webkit-sample.vala
/tmp/fenryxo/webkit-sample.vala.c: In function ‘vala_browser_create_widgets’:
/tmp/fenryxo/webkit-sample.vala.c:206:2: warning: ‘gtk_vbox_new’ is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkvbox.h:60): Use 'gtk_box_new' instead [-Wdeprecated-declarations]
$ ls
webkitgtk-3.0.deps  webkitgtk-3.0.vapi  webkit-sample  webkit-sample.vala