Qt. Note: No relevant classes found. No output generated. | Паршин Павел

При написании кода фейкового клиента для unit-тестов столкнулся с такой проблемой, что препроцессор MOC не обрабатывал мой класс, выдавая предупреждение:

Note: No relevant classes found. No output generated.

Исходный код класса:

#pragma once

#include <QObject>
#include <QLocalSocket>

class FakeLocalClient : public QObject {
    Q_OBJECT

    public:
    FakeLocalClient();

    ~FakeLocalClient();

    void connectToServer(const QString& serverName, QIODevice::OpenMode openMode = QIODevice::ReadWrite);

    bool waitForConnected(int msecs = 30'000);

    Q_SIGNAL void messageReceived(const QString& message);

    Q_SIGNAL void errorOccured(const QString& errorMessage);

    Q_SLOT void readIncomingMessage();

    private:
    QLocalSocket* client = nullptr;
    quint32 blockSize = 0;
};

На форумах в основном пишут о том, что отсутствует макрос Q_OBJECT, что не верно для моего случая.

Реальной причиной ошибки оказалось использование апострофа для разделения разрядов в числовом литерале (одно из нововведений C++14) в объявлении функции waitForConnected.

Предыдущая запись Следующая запись