Qt中,关于undefined reference to ‘vtable for ‘的错误

在Qt中通过信号与槽机制来实现不同对话框,或者是不同窗口中的控件之间的信息通信。
这需要在类的头文件中声明这个宏:Q_OBJECT

信号与槽之间可以进行通信的根本原因是:当在类的头文件中添加Q_OBJECT以后QtCreator会自动的创建一个moc_…cpp文件,用于实现信号与槽通信的代码。但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自QObject类,而是在后面添加的,则会出现QtCreator没有自动创建moc_…cpp文件的情况。
这时在类的源文件就会出现这样的错误提示:undefined reference to 'vtable for ...

解决办法:
1.从头文件中,移除该源文件的头文件。
2.从现有文件中添加该源文件的头文件,这样QtCreator就会自动为该类创建moc_…cpp文件。

猜你喜欢

转载自blog.csdn.net/weixin_46060711/article/details/128522527