Как вручную скопировать Qt .rep в.h и затем скопировать их в.cpp

Я пытаюсь вручную звонить 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());
};

делать

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 ответ

Решение

Проблема в том, что вы не связываете 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 
Другие вопросы по тегам