使用VS 2017的QT 5.9 - 使用QWebEngineView获取未解析的符号

时间:2017-11-30 22:01:02

标签: c++ qt linker-errors

我正在进军C ++和QT 5.9。

我正在运行QT Tools for VS 2017,QT 5.9库已添加到VS 2017,我正在构建QT GUI应用程序而没有问题。

但是,当我尝试构建一个隐藏QWebEngineView或QWebEnginePage的 very 简单示例时,我在QWebEngineView上创建了未解析的外部符号" __ declspec(dllimport)... .. 我还注意到其中一些#includes与QT 5.9 doc网站上的示例不匹配......

我已经卸载并重新安装了QT 5.9以及5.6几次,并将每个模块包含在每个模块中,以防万一!

代码

#include <QtWidgets/QtWidgets>
#include <QtWidgets/QApplication>
#include <QtWebEngineWidgets/QtWebEngineWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebEngineView view;
    view.show();
    view.load(QUrl("http://google.com"));

    return a.exec();
}

构建输出

1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QWebEngineView::QWebEngineView(class QWidget *)" (__imp_??0QWebEngineView@@QEAA@PEAVQWidget@@@Z) referenced in function main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl QWebEngineView::~QWebEngineView(void)" (__imp_??1QWebEngineView@@UEAA@XZ) referenced in function main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QWebEngineView::load(class QUrl const &)" (__imp_?load@QWebEngineView@@QEAAXAEBVQUrl@@@Z) referenced in function main

1 个答案:

答案 0 :(得分:2)

您需要将QtWebEngine库添加到链接器。打开qmake .pro文件并添加QT += webenginewidgetshttp://doc.qt.io/qt-5/qwebengineview.html