Ubuntu 上的 wxWebView 编译问题

wxWebView compile issue on Ubuntu

我无法在我的 C++ 代码中编译 wxWebView。

#include <wx/wx.h>
#include <wx/wxhtml.h>
#include <wx/webview.h>

class MyFrame : public wxFrame
{
public:
    MyFrame();

    wxPanel    *panel;
    wxBoxSizer *topsizer;
    wxMenuBar  *menubar;
    wxMenu     *file;
    wxWebView  *webView;    // <---- HERE
    wxString    editorURL;
};

我收到以下编译器错误(片段):

g++ -c `wx-config --cxxflags` -o helloworld.o helloworld.cpp
helloworld.cpp:20:5: error: ‘wxWebView’ does not name a type; did you mean ‘wxWeakRef’?
 wxWebView  *webView;
 ^~~~~~~~~
 wxWeakRef

关于系统配置的更多信息:

我唯一能想到的是我在 apt-get 中缺少一个包或者我有冲突的包装。

$ dpkg -l | grep webview
ii  libwxgtk-webview3.0-gtk3-0v5:amd64         3.0.4+dfsg-3                        amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ 3 webview library runtime)
ii  libwxgtk-webview3.0-gtk3-dev               3.0.4+dfsg-3                        amd64        wxWidgets Cross-platform C++ GUI toolkit (GTK+ 3 webview library development)

$ dpkg -l | grep webkit
ii  gir1.2-webkit-3.0:amd64                    2.4.11-3ubuntu3                     amd64        Web content engine library for GTK+ - GObject introspection data
ii  gir1.2-webkit2-4.0:amd64                   2.20.3-0ubuntu0.18.04.1             amd64        Web content engine library for GTK+ - GObject introspection data
ii  libwebkit2gtk-4.0-37:amd64                 2.20.3-0ubuntu0.18.04.1             amd64        Web content engine library for GTK+
ii  libwebkitgtk-1.0-0:amd64                   2.4.11-3ubuntu3                     amd64        Web content engine library for GTK+
ii  libwebkitgtk-3.0-0:amd64                   2.4.11-3ubuntu3                     amd64        Web content engine library for GTK+
ii  libwebkitgtk-3.0-dev:amd64                 2.4.11-3ubuntu3                     amd64        Web content engine library for GTK+ - development files
ii  libwebkitgtk-dev:amd64                     2.4.11-3ubuntu3                     amd64        Web content engine library for GTK+ - development files

如果你能帮我弄清楚我需要哪些包来编译 wxWebView 以及我需要在 Makefile 中更新什么才能让它编译。

您的 wxWidgets 版本似乎是在不支持 wxWebView 的情况下构建的。您可以通过在 wxWidgets 包中包含的 setup.h 文件中搜索 wxUSE_WEBVIEW 来检查它。

如果确实如此,您将需要构建您自己的库版本。幸运的是,这和 Unix 下的通常 ./configure && make 一样简单(您甚至不需要安装它,当然您可以安装它)。

最后但同样重要的是:不要忘记在使用此 class 时需要显式请求 webview 库,即使用 wx-config --libs std,webview 而不仅仅是 wx-config --libs