正如标题所说,我的问题是我尝试同时使用 gtk 3 和 webkit 1。
我正在关注这个例子https://live.gnome.org/Vala/WebKitSample
除了我使用的是 gtk 3 而不是 2。
我正在使用 valac 0.16.0
我现在注意到错误是 Gdk 2 和 Gdk 3 相同的符号。
这似乎是解决我的问题链接的一种方法, 但它是非标准的。
没关系,我已经用捆绑的 webkitgtk 修复了它。
正如标题所说,我的问题是我尝试同时使用 gtk 3 和 webkit 1。
我正在关注这个例子https://live.gnome.org/Vala/WebKitSample
除了我使用的是 gtk 3 而不是 2。
我正在使用 valac 0.16.0
我现在注意到错误是 Gdk 2 和 Gdk 3 相同的符号。
这似乎是解决我的问题链接的一种方法, 但它是非标准的。
没关系,我已经用捆绑的 webkitgtk 修复了它。
您不能将库 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。
由于 webkigtk-3.0 绑定没有随 Vala 提供(错误 676249),您必须创建自己的绑定(按照上述电子邮件中的说明)并告诉 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