Qt5.6 This message pops up during debug. What can be done to identify the cause and eliminate it. Online information on this subject is very vague.

RTTI symbol not found for class 'QObject' 

The error is issued in the function after it is executed and it starts running through the lines again. After such a passage on the line of the variable "EmailEdit e;" and this error pops up. It’s not quite clear to me what exactly is happening during the final run and how it is properly called.

 QString ProviderSMTP::switchProvider(QString provider, QString pass) { EmailEdit e; if (e.emailTrue(provider)) { toConfigFile(setProvider(provider, pass)); } else { toConfigFile(setProvider(showAllFreeProvider())); } return ""; } 

Added to pro file:

 CONFIG += rtti 

Prototype EmailEdit:

 class EmailEdit : public QObject { Q_OBJECT public: explicit EmailEdit(QObject *parent = 0); bool emailTrue (QString); QStringList emailExtract(QString); // проверить выдачу signals: public slots: private: int right(QChar); int left(QChar); bool domain(QString); }; 
  • It looks like you are using ++ functions that use rtti (for example, dynamic_cast). - KoVadim
  • Could this be a hang-up gui? - shaman888
  • gui hangs are usually from too long operations (for example, http requests) in the main thread). And why do you CONFIG += rtti ? can delete? - KoVadim
  • @KoVadim wrote the answer. Can you describe exactly what was wrong and why? I will be grateful and credit your answer. - shaman888
  • I am not a telepath and guess what was there - difficult. But there is a suspicion that the gap is somewhere inside the class EmailEdit. - KoVadim

1 answer 1

The problem was solved by replacing the object definition with:

  EmailEdit *e = new EmailEdit; 

Setting:

 CONFIG += rtti 

I deleted it, but it works both with it and without it. It was installed during the debugging process in the hope that it would help.

  • `EmailEdit * e = new EmailEdit;` is not an object definition. This is his creation in a heap. - KoVadim