Qt Creator помогите разобраться в чм ошибка ! . вот код #include <iostream>
14.03.2022
Дата публикации:

Qt Creator помогите разобраться в чм ошибка ! . вот код #include <iostream>

9380d1a7

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).

Чтобы исправить эту ошибку, вам необходимо выполнить следующие действия:

  1. Убедитесь, что вы используете правильные директивы препроцессора в вашем файле .pro. Добавьте следующую строку в ваш файл .pro:

    QT += core

  2. Пересоберите проект, чтобы MOC сгенерировал необходимые файлы.

Если после выполнения этих действий ошибка все еще остается, попробуйте выполнить следующие дополнительные действия:

  1. Очистите проект и пересоберите его заново.
  2. Удалите все файлы с расширением .moc в вашем проекте и пересоберите его заново.
  3. Проверьте, что вы используете правильную версию Qt и компилятора MinGW.

Если ни одно из этих действий не помогло, попробуйте создать новый проект с тем же кодом и проверьте, работает ли он. Если новый проект работает, возможно, проблема связана с вашим текущим проектом.