Вот пишу приложение для баз данных на Qt. И тут такое:
mainwindow.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl MyDb::MyDb(class QString,class QString,class QString,class QString)" (??0MyDb@@QEAA@VQString@@000@Z) в функции "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl MyDb::~MyDb(void)" (??1MyDb@@QEAA@XZ) в функции "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
NMAKE:-1: ошибка: U1077: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\link.EXE" : возвращенный код "0x460"
NMAKE:-1: ошибка: U1077: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" : возвращенный код "0x2"
Я не понимаю от куда тут эти ошибки.
Вот код:
mydb.h
#ifndef MYDB_H
#define MYDB_H
#include <QtSql/QSqlError>
#include <QtSql/QSqlRecord>
#include <QDebug>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlTableModel>
#include <QtSql/QSqlQuery>
class MyDb
{
public:
MyDb(const QString name,const QString host,const QString login,const QString pass);
~MyDb();
QSqlDatabase db;
};
#endif // MYDB_H
mydb.cpp
#include "mydb.h"
MyDb::MyDb(const QString name,const QString host,const QString login,const QString pass)
{
db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName(name);
db.setHostName(host);
db.setUserName(login);
db.setPassword(pass);
db.setPort(3306);
if (!db.open()){
QDebug() << db.lastError() << endl;
} else {
QDebug() << "Db opened!" << endl;
}
}
MyDb::~MyDb() {
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mydb.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyDb mdb("test","127.0.0.1","root","toor");
}
MainWindow::~MainWindow()
{
delete ui;
}
Прошу помощи.