У меня есть некоторые классы, определенные только с использованием файла заголовков, который наследует класс QObject и использует макрос Q_OBJECT.Они помещены в определенную папку на моем ПК.Я хочу включить эти классы в мой проект qt.
Я написал файл .pri (расположенный в той же папке этих классов) следующим образом:
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD
В моем.В проектном файле я включаю .pri (используя команду include()
) и могу импортировать заголовки.Проблема в том, что во время компиляции у меня есть некоторые ошибки компоновки, связанные с QMetaObject, например
Plc.obj:-1: error: LNK2001: external symbol "public: virtual struct QMetaObject const * __cdecl Conveyor::metaObject(void)const " (?metaObject@Conveyor@@UEBAPEBUQMetaObject@@XZ) not resolved
Я думаю, что проблема связана с тем, что qmake не генерирует файл moc для каждого класса, этовключайте только путь заголовков.Фактически, если я удаляю макрос Q_OBJECT из этих классов, я могу успешно скомпилировать проект.
Есть способ сообщить qmake, что он должен генерировать moc-файл для этих заголовков?Я хотел бы избежать создания библиотеки или проекта для этих классов.Или, может быть, другое решение?