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
关于系统配置的更多信息:
- wxWidgets 3.0
- Ubuntu 18.04
- 包含的网络视图文件:wx/webview.h
我唯一能想到的是我在 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
。
我无法在我的 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
关于系统配置的更多信息:
- wxWidgets 3.0
- Ubuntu 18.04
- 包含的网络视图文件:wx/webview.h
我唯一能想到的是我在 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
。