不能在我的程序中同时使用webkit2gtk-4.0和webkit2gtk-web-extension-4.0

时间:2014-12-23 21:59:07

标签: build webkit cmake vala webkitgtk

我在Vala程序中使用webkit2gtk向用户显示一些页面,并webkit2gtk-web-extension来管理DOM。但由于构建错误,我无法同时使用这两个软件包。当我将这两个包添加到cmake系统时,它会显示以下错误:

webkit2gtk-web-extension-4.0.vapi:2619.2-2619.38: error: `WebKit' already contains a definition for `URIRequest'
    public class URIRequest : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-4.0.vapi:488.2-488.38: note: previous definition of `URIRequest' was here
    public class URIRequest : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-web-extension-4.0.vapi:2628.2-2628.39: error: `WebKit' already contains a definition for `URIResponse'
    public class URIResponse : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-4.0.vapi:497.2-497.39: note: previous definition of `URIResponse' was here
    public class URIResponse : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

如果我从CMakeLists.txt中删除其中一个软件包,则找不到WebKit.WebView或WebKit.Webpage。

也许这是因为我自己构建了webkit2gtk-4.0软件包并且没有使用存储库版本,我不知道。

那么,问题是:如何管理呢?

2 个答案:

答案 0 :(得分:1)

以nemequ的答案为基础。这两个库不能同时使用,等等.Webkit2GTK-4.0绑定需要支持DOM操作。具体来说,WebKit2GTK Binding需要JSCore支持。如果没有JSCore,很难在WebKit2GTK中修改JS上下文。至少这是它在WebKitGtk-3中的设置方式。

与此同时,您实际上可以使用WebKitGtk-3.0 DaveDoesDev有一个关于此处列出的完美教程:http://www.davedoesdev.com/wrapping-webkit-part-1-gtk+-vala/

您可以在此处查看有效的投诉:https://github.com/CT-Architecture/AbstractStudio-Baseline/blob/master/src/widgets/webkitView.vala

这是JSCore Vapi:https://github.com/CT-Architecture/AbstractStudio-Baseline/blob/master/vapi/javascriptcore.vapi

答案 1 :(得分:0)

这两个包不能同时使用。这不是Vala绑定的问题 - 在C级别也是如此,而且它是设计的。