Ошибка компоновщика Qt при добавлении класса в основное приложение Qt GUI
Я боролся в течение некоторого времени и могуне могу понять это. Я добавил класс в мое основное приложение Qt GUI и получил ошибки компоновщика. Я неНе вижу, что может вызвать это, и надеемся на обратную связь.
Ошибки компоновщика:
main.obj:-1: error: LNK2019: unresolved external symbol "public: void __thiscall Serial::start(enum QSerialPort::BaudRate)" (?start@Serial@@QAEXW4BaudRate@QSerialPort@@@Z) referenced in function _main
main.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall Serial::Serial(class QObject *)" (??0Serial@@QAE@PAVQObject@@@Z) referenced in function _main
debug\Test.exe:-1: error: LNK1120: 2 unresolved externals
Вот файл проекта:
#-------------------------------------------------
#
# Project created by QtCreator 2013-11-18T10:08:32
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Test
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
serial.cpp
HEADERS += mainwindow.h \
serial.h
FORMS += mainwindow.ui
файл serial.h:
#ifndef SERIAL_H
#define SERIAL_H
#include
#include
class Serial : public QObject
{
Q_OBJECT
public:
explicit Serial(QObject *parent = 0);
void start(QSerialPort::BaudRate baudRate);
bool Serial::closePort();
void Serial::readData();
signals:
public slots:
};
#endif // SERIAL_H
файл serial.cpp:
#include "serial.h"
#include
#include
Serial::Serial(QObject *parent) :
QObject(parent)
{
serial = new QSerialPort(this);
connect(serial, SIGNAL(readyRead()), this, SLOT(readData()));
}
bool Serial::start(QSerialPort::BaudRate baudRate)
{
if(serial.open(QIODevice::ReadWrite))
{
//TODO: Connection OK is green in GUI
QDebug < "Port opened successfully" < std::endl;
return true;
}
else
{
//Open failed.
QDebug < "Port failed to open" < std::endl;
//TODO: Show error window in GUI
return false;
}
if(
serial.setBaudRate(baudRate) &&
serial.setDataBits(QSerialPort::Data8) &&
serial.setParity(QSerialPort::NoParity) &&
serial.setStopBits(QSerialPort::OneStop) &&
serial.setFlowControl(QSerialPort::NoFlowControl)
)
{
//Connection ok.
QDebug < "Parameters set OK" < std::endl;
}
else
{
QDebug < "Parameters set FAILED" < std::endl;
Serial::closePort();
}
}
bool Serial::closePort()
{
serial.close();
//TODO: Connection OK is red in GUI
}
void Serial::readData()
{
this->readDataArray = this->serial.readAll();
}