C++/Qt - Открыть диалог из MainWindow - Ошибка LNK2019 - LNK2001: неразрешенный внешний символ
В основном цель кода - открыть диалоговое окно, содержащее QWebView (с некоторым содержимым) после нажатия на кнопку.
вот что я сделал:
mainwindow.h:
class MainWindow : public QMainWindow, public Ui::MainWindowUi
{
...
private slots:
void on_ViewDatabase_clicked();
...
}
mainwindow.cpp:
#include "mainwindow.h"
#include "onlinedb.h"
void MainWindow::on_ViewDatabase_clicked()
{
OnlineDB dlg(this);
dlg.exec();
}
onlinedb.h:
#ifndef OnlineDB_H
#define OnlineDB_H
#include "ui_onlinedb.h"
#include <QDialog>
class MainWindow;
class OnlineDB : public QDialog, public Ui::OnlineDB
{
Q_OBJECT
public:
OnlineDB(LkMainWindow *parent);
~OnlineDB();
private:
MainWindow *MainWindow;
};
#endif
onlinedb.cpp:
#include "onlinedb.h"
#include "mainwindow.h"
///////////////////////////////////////////////////////////////////////////////
//
// OnlineDB class constructor
//
// Create a OnlineDB
//
OnlineDB::OnlineDB(MainWindow *parent) : QDialog(parent), MainWindow(parent)
{
setupUi(this);
QUrl url("http://google.com"); //whatever
webView->load(url);
}
///////////////////////////////////////////////////////////////////////////////
//
// OnlineDB class destructor
//
// Clean up the OnlineDB
//
OnlineDB::~OnlineDB()
{
}
Я получил несколько ошибок связывания
Плз может кто то помочь по этому поводу?
3> Связывание... 3>onlinedb.obj: ошибка LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: void _ thiscall QWebView:: load (class QUrl const &)" ( _imp_? Load@QWebView@@QAEXABVQUrl@@@Z) ссылка на функцию "public: __thiscall OnlineDB::OnlineDB(класс LkMainWindow *)" (??0OnlineDB@@QAE@PAVLkMainWindow@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual struct QMetaObject const * __thiscall OnlineDB::metaObject(void)const " (?metaObject@OnlineDB@@UBEPBUQMetaObject@@XZ) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"public: virtual void * __thisct_DBBT: char const *)" (?qt_metacast@OnlineDB@@UAEPAXPBD@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"public: virtual int __thiscall OnlineDB::qt_metacall(перечисление QMetaObject::Call,int,void * *)" (?qt_metacall@OnlineDB@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 3>onlinedb.obj: ошибка LNK2019: неразрешенный внешний символ" __declspec (dllimport) public: void _ thiscall QWeb View:: setUrl (класс QUrl const &) "( _imp_? SetUrl@QWebView@@QAEXABVQUrl@@@Z), на который ссылается функция"public: void __thiscall Ui_OnlineDB::setupUi(класс QDialog *)" (? SetupUi@Ui_OnlineDB@@@ QAEXPAVQDialog@@@Z) 3>onlinedb.obj: ошибка LNK2019: неразрешенный внешний символ "__declspec(dllimport) public: __thiscall QWebView::QWebView(класс QWidget *)" (_ imp?? 0QWebView @@ QAE @ PAVQWidget @ Z) упоминается в функции "public: void __thiscall Ui_OnlineDB::setupUi(class QDialog *)" (? SetupUi@Ui_OnlineDB@@QAEXPAVQDialog@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual struct QMetaObject const * __thiscall QWebView::metaObject(void)const " (? MetaObject@QWebView@@UBEPBUQMetaObject@@XZ) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"public: virtual void * __thisct QW const *)" (?qt_metacast@QWebView@@UAEPAXPBD@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"public: virtual int __thiscall QWebView::qt_metacall(перечисление QMetaObject::Call,int,void * *)" (?qt_metacall@QWebView@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"public: virtual bool __thiscall QWebView::event(класс QEvent *)" (?event@QWebView@@UAE_NPAVQEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ" public: виртуальный класс QSize __thiscall QWebView::sizeHint(void)const " (?sizeHint@QWebView@@UBE?AVQSize@@XZ) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальный пусто __thiscall QWebView::mousePressEvent(класс QMouseEvent *)" (? MousePressEvent@QWebView@@MAEXPAVQMouseEvent@ Z) 3> onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальный пустота __thiscall QWebView::mouseReleaseEvent(класс QMouseEvent *)" (? MouseReleaseEvent@QWebView@@MAEXPAVQMouseEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищено: виртуальная пустота __thiscall QWebView::mouseDoubleClickEvent(класс QMouseEvent *)" (? MouseDoubleClickEvent@QWebView@@MAEXPAVQMouseEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищено: виртуальная пустота __thiscall QWebView::mouseMoveEvent(класс QMouseEvent *)" (? MouseMoveEvent@QWebView@@MAEXPAVQMouseEvent@@@Z) 3>onb.obj: ошибка LNK2001: неразрешенный внешний символ "защищено: виртуальная пустота __thiscall QWebView::wheelEvent(класс QWheelEvent *)" (?wheelEvent@QWebView@@MAEXPAVQWheelEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall QWebView::keyPressEvent(class QKeyEvent *)" (?keyPressEvent@QWebView@@MAEXPAVQKeyEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "protected: виртуальный void __thiscall QWebView::keyReleaseEvent(класс QKeyEvent *)" (?keyReleaseEvent@QWebView@@MAEXPAVQKeyEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ" protected: виртуальная пустота __thiscall QWebView::focusInEvent(класс QFocusEvent *)" (focusInEvent@QWebView@@MAEXPAVQFocusEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: unresolved внешний символ "Защищено: виртуальная пустота __thiscall QWebView::focusOutEvent(класс QFocusEvent *)" (?focusOutEvent@QWebView@@MAEXPAVQFocusEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ QWebView::paintEvent(class QPaintEvent *)" (? PaintEvent@QWebView@@MAEXPAVQPaintEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ"protected: virtual void __thiscall QWebView::resizeEvent(класс QResizeEvent *)" (?resizeEvent@QWebView@@MAEXPAVQResizeEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ" защищен: виртуальный недействительный @@@ Z) 3> onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальный недействительный __thiscall QWebView::dragEnterEvent(класс QDragEnterEvent *)" (? DragEnterEvent@QWebView@@MAEXPAVQDragEnterEvent@@@b 3> on>> на 3>. obj: ошибка LNK2001: неразрешенный внешний символ "protected: virtual void __thiscall QWebView::dragMoveEvent(class QDragMoveEvent *)" (?dragMoveEvent@QWebView@@MAEXPAVQDragMoveEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ" Защищено: виртуальный voidWaveE: защита __ (класс QDragLeaveEvent *) "(? dragLeaveEvent @QWebView@@MAEXPAVQDragLeaveEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ" защищен: виртуальная пустота __thiscall QWebView::dropEvent(класс QDropEvent * "(класс QDropEvent *) @QWebView@@MAEXPAVQDropEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальный недействительный __thiscall QWebView::changeEvent(класс QEvent *)" (? ChangeEvent@QWebView@@MAEXPAVQEvent@@@Z) 3>onlinedb.obj: ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальный недействителен __thiscall QWebView::inputMethodEvent(класс QInputMethodEvent *)" (?? InputMethodEvent@QWebView@@MAEXPAVQInputMethodEvent@@@Nb1j1j1j1j1j1j1j1j1j1j1j: 1: error = ошибка @@ LB1> 3> on: error @lined @ lb1>:: неразрешенный внешний символ "public: virtual class QVariant __this вызовите QWebView:: inputMethodQuery (enum Qt:: InputMethodQuery) const "(? inputMethodQuery @ QWebView @@ UBE? AVQVariant @@ W4InputMethodQuery @ Qt @@@ Z) 3> onlinedb.obj: защищенная виртуальная ошибка LNK2001: ошибка LLSK2001": защищен от ошибок LNK2001 ": защищен от ошибки LNK2001": защищенный символ LNK2001: не защищен bool __thiscall QWebView:: focusNextPrevChild (bool) "(? focusNextPrevChild @ QWebView @@ MAE_N_N @ Z) 3> onlinedb.obj: ошибка LNK2001: нерешенный внешний символ" защищен: виртуальный класс QWebView * _ thiscall QWebView:: createWindow (createWindow (createWindow (createWindow): WebWindowType) "(? CreateWindow @ QWebView @@ MAEPAV1 @ W4WebWindowType @ QWebPage @@@ Z) 3> onlinedb.obj: ошибка LNK2019: неразрешенный внешний символ" _declspec (dllimport) общедоступный: виртуальный _ thiscall QWebView:: ~ QWebView (~ QWebView (~ QWebView (~ QWebView (~ QWebView):) "( _imp _?? 1QWebView @@ UAE @ XZ) упоминается в функции"public: virtual void * __thiscall QWebView::`скалярное удаление деструктора '(unsigned int)" (??_GQWebView@@UAEPAXI@Z)
1 ответ
unresolved external symbol "public: virtual int __thiscall OnlineDB::qt_metacall(enum QMetaObject::Call,int,void * *)
Вы не сделали свой OnlineDB
или вы не связали объектный файл.
error LNK2019: unresolved external symbol "__declspec(dllimport) public: void _thiscall QWebView::load(class QUrl const &)"
Вы не связались со всеми необходимыми библиотеками Qt. QWebView
находится в QtWebKit
библиотека.