【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

相关推荐
weixin_440730501 小时前
java结构语句学习
java·开发语言·学习
JIngJaneIL2 小时前
基于java+ vue医院管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
量子联盟2 小时前
功能完整的PHP站点导航管理系统php程序;开源免费下载
开发语言·php
仙俊红2 小时前
在 Java 中,`==` 和 `equals()` 的区别
java·开发语言·jvm
JIngJaneIL2 小时前
基于java + vue校园跑腿便利平台系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
happybasic2 小时前
python字典中字段重复性的分析~~
开发语言·python
czlczl200209252 小时前
SpringBoot自动配置AutoConfiguration原理与实践
开发语言·spring boot·后端
张较瘦_3 小时前
JavaScript | 数组方法实战教程:push()、forEach()、filter()、sort()
开发语言·javascript·ecmascript
Filotimo_3 小时前
EntityGraph的概念
java·开发语言·数据库·oracle
wregjru3 小时前
【读书笔记】Effective C++ 条款1~2 核心编程准则
java·开发语言·c++