Qt „sygnalizuj niezdefiniowany błąd odniesienia” po odziedziczeniu z QObject

Ostatnio potrzebowałem dodać sygnał do klasy, więc zmieniłem klasę na dziedziczącą z QObject i dodałem makro Q_OBJECT do definicji klasy. Od kiedy to zrobię„sygnalizuj niezdefiniowany błąd odniesienia dla„ vtable for CLICpolecenie ”” błąd w wierszu klasy poniżej:

// File clicommand.h
#include <QString>
#include <QStringList>
#include <QTcpSocket>
#include "telnetthread.h"
class CLICommand : public QObject
{
Q_OBJECT
public:
    CLICommand(TelnetThread *parentTelnetThread);
signals:
    void signal_shutdown_request(); 
private:
    TelnetThread *m_parentTelnetThread;

i drugi błąd„sygnalizuj niezdefiniowany błąd odniesienia dla„ vtable for CLICpolecenie ”” w linii poniżej (intializując zmienną składową):

// File clicommand.cpp
#include <QDebug>
#include <QTcpSocket>
#include <QTextStream>
#include "version.h"
#include "clicommand.h"
#include "telnetthread.h"
#include "logger.h"
CLICommand::CLICommand(TelnetThread *parentTelnetThread)
  : m_parentTelnetThread(parentTelnetThread)
{
}

i właśnie tutaj emituję sygnał. Linia emitująca generuje błądniezdefiniowane odwołanie do `CLICommand :: signal_shutdown_request () ' :

// file shutdown_clicommand.cpp
#include <QIODevice>
#include "clicommand.h"
#include "logger.h"
#include "version.h"
void CLICommand::execute_shutdown(const QStringList &commandLineFragments)
{
    emit signal_shutdown_request();
}

Przeczytałem kilka postów na ten temat, ale wydaje się, że nie mają zastosowania. Próbowałem nawet czyszczenia / przebudowy. Nie używam boost ani innych bibliotek ... tylko QT 5

Czy ktoś może mi powiedzieć, co robię źle?

ROZWIĄZANIE: w QT Creator kliknij prawym przyciskiem myszy projekt, wybierz RUN QMAKE, a następnie odbuduj wszystko. Inne posty o uruchomieniu REBUILD ALL są niepoprawne ... w swoim własnym NIE będą działać qmake.

questionAnswers(1)

yourAnswerToTheQuestion