Qt Creator помогите разобраться в чм ошибка ! . вот код #include <iostream>
Qt Creator помогите разобраться в чм ошибка ! . вот код #include <iostream> #include <QApplication> #include <QTimer> class Printer : public QObject { Q_OBJECT public slots: void printFinished() { std::cout<<"finished"<<std::endl; } }; int main(int argc , char argv) { QApplication app (argc, argv); //логика программы QTimer mytimer; Printer myPrinter; QObject::connect(&mytimer, &QTimer::timeout, &myPrinter, &Printer::printFinished); mytimer.start(2000); app.exec(); return 0; }вот ошибка :debug/main.o:main.cpp:(.rdata$.refptr._ZTV7Printer[.refptr._ZTV7Printer]+0x0): undefined reference to `vtable for Printer' collect2.exe: error: ld returned 1 exit status mingw32-make[1]: ** [Makefile.Debug:66: debug/36.exe] Error 1 mingw32-make[1]: Leaving directory 'E:/SkillboxProject/QTCreeitor/build-36-Desktop_Qt_5_12_12_MinGW_64_bit-Debug' mingw32-make: [Makefile:38: debug] Error 2 09:31:27: Процесс «C:\Qt\Qt5.12.12\Tools\mingw730_64\bin\mingw32-make.exe» завершился с кодом 2. Ошибка при сборке/развёртывании проекта 36 (комплект: Desktop Qt 5.12.12 MinGW 64-bit) Во время выполнения этапа «Сборка» 09:31:27: Прошло времени: 00:03. как ее устранить?
Ошибка, которую вы видите, связана с отсутствием определения виртуальной таблицы (vtable) для класса Printer.
В Qt для использования механизма сигналов и слотов необходимо добавить макрос Q_OBJECT в определение класса. Однако, для того чтобы макрос Q_OBJECT работал должен быть подключен мета-объектный компилятор (MOC).
Чтобы исправить эту ошибку, вам необходимо выполнить следующие действия:
- Убедитесь, что вы используете правильные директивы препроцессора в вашем файле .pro. Добавьте следующую строку в ваш файл .pro:
QT += core
- Пересоберите проект, чтобы MOC сгенерировал необходимые файлы.
Если после выполнения этих действий ошибка все еще остается, попробуйте выполнить следующие дополнительные действия:
- Очистите проект и пересоберите его заново.
- Удалите все файлы с расширением .moc в вашем проекте и пересоберите его заново.
- Проверьте, что вы используете правильную версию Qt и компилятора MinGW.
Если ни одно из этих действий не помогло, попробуйте создать новый проект с тем же кодом и проверьте, работает ли он. Если новый проект работает, возможно, проблема связана с вашим текущим проектом.