【Qt】报错error: undefined reference to `vtable for的最简单解决

1、问题描述

编译Qt程序时,在某个类构造函数定义处报错:

复制代码
error: undefined reference to `vtable for

2、原因分析

导致错误信息的原因是:子类没有实现父类的纯虚函数

在Qt中,首先要想到的是在一个类中添加了新的继承QObject,并添加了 Q_OBJECT 宏,然后执行构造或重新构造,都会造成这个错误。

根本原因是,只执行构造或重新构造,都不会编译新添加的宏Q_OBJECT。因此在这之前要执行qmake,让moc编译器去预编译Q_OBJECT,然后再执行构造,就不再报错了。

3、解决方法
首先重新执行qmake,然后再执行构造。平时使用这个方法也可以解决大多数bug

相关推荐
大道随心24 分钟前
【wpf】10 C#树形控件高效实现:递归构建与路径查找优化详解
开发语言·c#·wpf
香蕉可乐荷包蛋32 分钟前
Python学习之路(玖)-图像识别的实现
开发语言·python·学习
航Hang*1 小时前
C PRIMER PLUS——第6-2节:二维数组与多维数组
c语言·开发语言·经验分享·程序人生·算法·学习方法·visual studio
3D打印-HUSTAIBO1 小时前
QT中connect高级链接——指针、lambda、宏
qt
易只轻松熊1 小时前
C++(1):整数常量
开发语言·c++
努力的搬砖人.1 小时前
Java 线程池原理
java·开发语言
Dovis(誓平步青云)1 小时前
精讲C++四大核心特性:内联函数加速原理、auto智能推导、范围for循环与空指针进阶
c语言·开发语言·c++·笔记·算法·学习方法
passionSnail2 小时前
《用MATLAB玩转游戏开发》Flappy Bird:小鸟飞行大战MATLAB趣味实现
开发语言·matlab
jz_ddk2 小时前
[学习]RTKLib详解:convkml.c、convrnx.c与geoid.c
c语言·开发语言·学习
stevenzqzq2 小时前
kotlin flow防抖
开发语言·kotlin·flow