我在Qt中做了一个项目,并添加了一个QWebview,然后我将Qt += webkit
添加到.pro
文件中。然而,在编译时,我得到了这些错误:
...ui_mainwindow.h:42: error: undefined reference to `_imp___ZN8QWebViewC1EP7QWidget'
...ui_mainwindow.h:45: error: undefined reference to `_imp___ZN8QWebView6setUrlERK4QUrl'
错误指在这里(在ui_mainwindow.h
):
...
webView = new QWebView(centralWidget); // <-- First error here
webView->setObjectName(QStringLiteral("webView"));
webView->setGeometry(QRect(0, 0, 300, 200));
webView->setUrl(QUrl(QStringLiteral("about:blank"))); // <-- Second error here
MainWindow->setCentralWidget(centralWidget);
...
在Program.pro: QT += core gui webkit
我认为这些错误通常发生在没有Qt += webkit
的情况下,但在这种情况下,这不是发生的事情。
ui_mainwindow.h:42: error: undefined reference to ' _imp___ZN8QWebViewC1EP7QWidget'
链接器找不到webview小部件符号。
我认为这些错误通常发生在没有Qt += webkit的情况下,但在这种情况下,这不是发生的事情。
这是正确的,然而QtWebkit模块在Qt 5中被分成webkit和webkitwidgets,因为小部件通常在Qt 5中移动到它们单独的模块中,因为构建ui的方式是QtQuick。
要解决这个问题,您需要在项目文件中这样写:
QT = webkit webkitwidgets
注意,没有必要显式地使用core
和gui
模块,因为它们是默认添加的。此外,请确保您也安装了webkitwidgets模块,否则即使上面的内容也不够。
在Qt 5中,他们引入了webkit以外的东西:
试着放入。pro文件:Qt += core gui webkit widgets webkitwidgets
希望对你有帮助。