1、问题描述
编译Qt程序时,在某个类构造函数定义处报错:
error: undefined reference to `vtable for
2、原因分析
导致错误信息的原因是:子类没有实现父类的纯虚函数;
在Qt中,首先要想到的是在一个类中添加了新的继承QObject,并添加了 Q_OBJECT 宏,然后执行构造或重新构造,都会造成这个错误。
根本原因是,只执行构造或重新构造,都不会编译新添加的宏Q_OBJECT。因此在这之前要执行qmake,让moc编译器去预编译Q_OBJECT,然后再执行构造,就不再报错了。
3、解决方法
首先重新执行qmake,然后再执行构造。
这个问题遇到好多次了,每次都会忘,然后瞎折腾一番,特此记录下。
当在Qt中添加新的QObject继承并使用Q_OBJECT宏后,若出现构造函数报错,通常是因未执行qmake导致moc编译器未预编译Q_OBJECT。解决方法是先运行qmake,再进行构造,确保moc处理正确。
2436

被折叠的 条评论
为什么被折叠?



