Как вручную скопировать 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