我在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
软件包并且没有使用存储库版本,我不知道。
那么,问题是:如何管理呢?
答案 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级别也是如此,而且它是设计的。