Как вручную скопировать Qt .rep в .h и затем скопировать их в .cpp - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь вручную вызвать repc в моих .rep файлах, затем запустить moc в выходных файлах заголовка.
repc работает успешно, но moc случайно жалуется на

ошибка разбора в '('

после объявления Q_CLASSINFO. Кто-нибудь видел эту проблему раньше?

Пример :

remoteminimal.rep

class RemoteMinimal
{
    SIGNAL(sendData(const QString &, const QString &));
    SLOT(void printData(const QString &));
    SLOT(void process(const QString &, const QString &));
    SLOT(void triggerSendData());
};

do

repc -i rep remoteminimal.rep -o replica rep_min_test.h

затем

moc -o moc_rep_min_test.cpp rep_min_test.h

вы получитеследующая ошибка:

rep_min_test.h: 20: Ошибка разбора в "("

1 Ответ

0 голосов
/ 16 февраля 2019

Проблема в том, что вы не связываете Qt, поэтому MOC не находит некоторых определений.В этих случаях я предпочитаю проанализировать код, сгенерированный qmake, и следующий фрагмент:

/usr/bin/moc ... rep_remoteminimal_replica.h -o moc_rep_remoteminimal_replica.cpp -I /usr/include/qt -I /usr/include/qt/QtRemoteObjects

Вы видите, что он связан /usr/include/qt:

moc -I/usr/include/qt rep_min_test.h -o moc_rep_min_test.cpp 
...