Подтвердить что ты не робот

Ошибки компоновщика QT5 QWebView

Сейчас я просто пытаюсь загрузить "www.google.com" для загрузки в веб-браузере при нажатии кнопки. После того как я добавил webview в дизайнере, компоновщик начинает сходить с ума. Я использую QT Creater 2.6.1 с QT5 в Windows 7. Я добавил материал QT + = 'webkit' в .pro файл. Я пробовал очистить и перестроить, все еще получаю ошибки компоновщика.

по какой-то нечетной причине добавление "#include <QWebView>" в любом файле приводит к ошибке файла: "C:\Users\Scott\Desktop\eCookBook\eCookBook2\cookbook.cpp: 3: ошибка: C1083: невозможно открыть include файл:" QWebView ": нет такого файла или каталога"

cookbook.h:

#ifndef COOKBOOK_H
#define COOKBOOK_H

#include <QMainWindow>
#include <QtWebKit/QWebElement>
#include <QtWebKit/QtWebKit>
#include <QtWebKitWidgets/QWebPage>

namespace Ui {
class cookBook;
}

class cookBook : public QMainWindow
{
    Q_OBJECT

public:
    explicit cookBook(QWidget *parent = 0);
    ~cookBook();

private slots:
    void on_pushButton_clicked();

    void on_textBrowser_anchorClicked(const QUrl &arg1);


private:
    Ui::cookBook *ui;
    //QWebPage page;
};

#endif // COOKBOOK_H

cookbook.cpp

#include "cookbook.h"
#include "ui_cookbook.h"
//#include <QWebView>
//#include <QtWebKit/QtWebKit>

cookBook::cookBook(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::cookBook)
{
    ui->setupUi(this);
}

cookBook::~cookBook()
{
    delete ui;
}


void cookBook::on_pushButton_clicked()
{
    ui->listWidgetTest->insertItem(ui->listWidgetTest->count(), "TEST");

    const QUrl testsite = "www.google.com";
    ui->widget->load(testsite);
    ui->widget->show();

}

.pro файл

#-------------------------------------------------
#
# Project created by QtCreator 2013-01-23T14:46:45
#
#-------------------------------------------------

QT       += core gui
QT += webkit
QT += webkit webkitwidgets


greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = eCookBook2
TEMPLATE = app


SOURCES += main.cpp\
        cookbook.cpp

HEADERS  += cookbook.h

FORMS    += cookbook.ui

вывод компилятора:

15:04:58: Running steps for project eCookBook2...
15:04:58: Configuration unchanged, skipping qmake step.
15:04:58: Starting: "C:\QtCommercial\QtCommercial5.0.0\Tools\QtCreator\bin\jom.exe" 
    C:\QtCommercial\QtCommercial5.0.0\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
    cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MDd -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"..\..\..\..\..\QtCommercial\QtCommercial5.0.0\5.0.0\msvc2010\include" -I"..\..\..\..\..\QtCommercial\QtCommercial5.0.0\5.0.0\msvc2010\include\QtWidgets" -I"..\..\..\..\..\QtCommercial\QtCommercial5.0.0\5.0.0\msvc2010\include\QtGui" -I"..\..\..\..\..\QtCommercial\QtCommercial5.0.0\5.0.0\msvc2010\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\..\..\QtCommercial\QtCommercial5.0.0\5.0.0\msvc2010\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Scott\AppData\Local\Temp\cookbook.obj.5244.0.jom
cookbook.cpp
..\eCookBook2\cookbook.cpp(34) : warning C4100: 'arg1' : unreferenced formal parameter
    echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\eCookBook2.exe.embed.manifest">debug\eCookBook2.exe_manifest.rc
    if not exist debug\eCookBook2.exe del debug\eCookBook2.exe.embed.manifest>NUL 2>&1
    if exist debug\eCookBook2.exe.embed.manifest copy /Y debug\eCookBook2.exe.embed.manifest debug\eCookBook2.exe_manifest.bak
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:debug\eCookBook2.exe.embed.manifest /OUT:debug\eCookBook2.exe @C:\Users\Scott\AppData\Local\Temp\eCookBook2.exe.5244.2012.jom
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QWebView::QWebView(class QWidget *)" ([email protected]@[email protected]@@@Z) referenced in function "public: void __thiscall Ui_cookBook::setupUi(class QMainWindow *)" ([email protected][email protected]@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall QWebView::metaObject(void)const " ([email protected]@@[email protected]@XZ)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall QWebView::qt_metacast(char const *)" ([email protected]@@[email protected])
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall QWebView::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected])
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall QWebView::event(class QEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual class QSize __thiscall QWebView::sizeHint(void)const " ([email protected]@@[email protected]@XZ)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mousePressEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseReleaseEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseDoubleClickEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::mouseMoveEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::wheelEvent(class QWheelEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::keyPressEvent(class QKeyEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::keyReleaseEvent(class QKeyEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::focusInEvent(class QFocusEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::focusOutEvent(class QFocusEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::paintEvent(class QPaintEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::resizeEvent(class QResizeEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::contextMenuEvent(class QContextMenuEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragEnterEvent(class QDragEnterEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragMoveEvent(class QDragMoveEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dragLeaveEvent(class QDragLeaveEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::dropEvent(class QDropEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::changeEvent(class QEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall QWebView::inputMethodEvent(class QInputMethodEvent *)" ([email protected]@@[email protected]@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "public: virtual class QVariant __thiscall QWebView::inputMethodQuery(enum Qt::InputMethodQuery)const " ([email protected]@@[email protected]@[email protected]@@@Z)
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual bool __thiscall QWebView::focusNextPrevChild(bool)" ([email protected]@@[email protected])
cookbook.obj : error LNK2001: unresolved external symbol "protected: virtual class QWebView * __thiscall QWebView::createWindow(enum QWebPage::WebWindowType)" ([email protected]@@[email protected]@[email protected]@@Z)
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QWebView::~QWebView(void)" ([email protected]@[email protected]) referenced in function "public: virtual void * __thiscall QWebView::`scalar deleting destructor'(unsigned int)" ([email protected]@[email protected])
cookbook.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWebView::load(class QUrl const &)" ([email protected]@@[email protected]@@Z) referenced in function "private: void __thiscall cookBook::on_pushButton_clicked(void)" ([email protected]@@AAEXXZ)
debug\eCookBook2.exe : fatal error LNK1120: 29 unresolved externals
jom: C:\Users\Scott\Desktop\eCookBook\eCookBook2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile.Debug [debug\eCookBook2.exe] Error 1120
jom: C:\Users\Scott\Desktop\eCookBook\eCookBook2-build-Desktop_Qt_5_0_0_MSVC2010_32bit_SDK-Debug\Makefile [debug] Error 2
15:05:01: The process "C:\QtCommercial\QtCommercial5.0.0\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project eCookBook2 (kit: Desktop Qt 5.0.0 MSVC2010 32bit (SDK))
When executing step 'Make'
4b9b3361

Ответ 1

Сначала попробуйте "Запустить qmake" (из меню "Build" в Creator), чтобы восстановить файлы make и затем перестроить. В принципе вам нужно "Запустить qmake" после каждой модификации файла .pro.

Ответ 2

  • Нажмите Ctrl + 5 в Создателе.
  • Снимите флажок "Shadow build".
  • Измените строку файла .pro на:

    QT += core gui network webkit webkitwidgets
    
  • Восстановить проект

Ответ 3

Исправлена ​​ошибка. Попробуйте добавить путь к qwebview.h в include, например: (измените "QtWebKitWidgets" на ваш)

#include <QtWebKitWidgets/QWebView.h>

вместо #include <QWebView.h>

Попробуйте добавить его ко всем файлам, использующим QWebView.