【问题解决】QT报错:error: undefined reference to `vtable ...`

问题:

QT编译报错:

error: undefined reference to `vtable ...`

原因:

  • Qt 通过信号与槽机制来实现通信的功能。
  • 当该类派生自QObject并且在头文件中添加Q_OBJECT宏以后,就可以使用信号与槽。
  • 当在类的头文件中添加Q_OBJECT以后QtCreator会自动的创建一个 moc_***.cpp文件,用于实现信号与槽通信的代码。
  • 但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自QObject类,而是在后面添加的,则会出现QtCreator没有自动创建moc_***.cpp文件的情况。在这种情况下就会报错:undefined reference to `vtable for ***。

解决:

按照网上各种办法无法解决,重新构建也无法解决。
我的是小工程,直接把 build-xxx 文件夹删了再重新构建就可以了。

你可能感兴趣的:(QT,qt,c++,开发语言)