【Qt】报错error:undefined reference to `vtable for Consumer‘的解决方法
1. 问题原因
在创建完程序后,点击构建,显示编译错误。
错误问题如下:
error: undefined reference to `vtable
在编译输出中查看显示如下:
error:undefined reference to `vtable for custom'
2. 原因分析
这个错误通常是因为 C++ 的虚函数表(vtable)没有正确构建导致的。可能是以下几个原因造成的:
- 虚函数的析构函数问题:如果在基类中声明了一个虚析构函数,但是在派生类中没有正确地实现它,就可能导致 vtable 错误。
- 编译顺序问题:在某些情况下,编译顺序也可能导致此错误。确保你的项目文件或 Makefile 按正确的顺序编译了所有的源文件。
- 链接问题:确保所有实现了虚函数的源文件都被正确地链接到了最终的可执行文件。
- 多次定义或重复包含:确保没有在多个源文件中重复定义相同的类,或者没有重复包含相同的源文件。
- Q_OBJECT 宏问题:如果在使用 Qt,并且在你的类定义中使用了 Q_OBJECT 宏,但是忘记运行 qmake,这也可能导致 vtable 错误。
3. 解决方案
将以上原因逐步分析,通过仔细检查,发现是类定义中使用了 Q_OBJECT 宏,但是忘记运行 qmake,直接构建造成的。
qmake是Qt的构建工具,它可以根据项目文件生成Makefile或其他构建文件。
而moc是Qt的元对象编译器,它处理带有Q_OBJECT宏的头文件,生成moc_xxx.h文件。
在Qt项目中,通常会使用qmake来生成构建文件,而moc则会自动包含在构建过程中。
因此,qmake和moc是相互关联的,它们共同构成了Qt项目的构建过程。
解决方案:
- 执行
qmake - 点击
构建或者重新构建
相关文章:
【Qt】报错error:undefined reference to `vtable for Consumer‘的解决方法
1. 问题原因 在创建完程序后,点击构建,显示编译错误。 错误问题如下: error: undefined reference to vtable在编译输出中查看显示如下: error:undefined reference to vtable for custom2. 原因分析 这个错误通常是因为 C 的虚函数表&am…...
【linux系统】用户功能与权限详细总结
前言 菜某的笔记总结,有错误还请指正。 linux用户的概念与root用户 这么理解:一台电脑有多个操作者,每个操作者只能无限制操作自己文件夹中的东西,其他地方的操作需要给与相应权限才能操作。 root用户:就是最高级的…...
ELK简单介绍二
学习目标 能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana kibana介绍 Kibana是一个开源的可视化平台,可以为ElasticSearch集群…...
video 标签 各种属性及所有事件监听
网页中的video 属性和事件,用于计算观看视频的时长,其他用法备存。 <!-- video 不支持 IE8及以下版本浏览器,支持三种视频格式:MP4,WebM 和 Ogg --><video src"test.mp4" controls width"400…...
TS中断言、转换的应用
1.TS 类型断言定义 把两种能有重叠关系的数据类型进行相互转换的一种 TS 语法,把其中的一种数据类型转换成另外一种数据类型。类型断言和类型转换产生的效果一样,但语法格式不同。 2.TS 类型断言语法格式 A 数据类型的变量 as B 数据类型 。 A 数据类…...
【代码随想录算法训练营-第四天】【链表】24,19, 面试题 02.07,142
24. 两两交换链表中的节点 第一遍-递归-小看了一下题解 思路: 读了两遍题目才理解…相邻节点的交换,这个操作很容易实现,但需要一个tmpNode因为是链表的题目,没开始思考之前先加了dummyNode,还真管用把dummyNode作为…...
代理设计模式
1. 代理模式 1.1 代理模式的原理分析 代理设计模式(Proxy Design Pattern)是一种结构型设计模式,它为其他对象提供一个代理对象,以控制对这个对象的访问。代理模式可以用于实现懒加载、安全访问控制、日志记录等功能。 代理模式…...
ubuntu安装docker及docker常用命令
docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 文章目录 docker命令docker镜像相关命令docker容器相关命令数据卷ubuntu安装docker docker命令 #启动,停止,重启docker systemctl start docker systemctl stop docker s…...
STM32-TIM定时器输出比较
目录 一、输出比较简介 二、PWM简介 三、输出比较通道(通用) 四、输出比较通道(高级) 五、输出比较模式 六、PWM基本结构 七、PWM参数计算 八、外设介绍 8.1 舵机 8.2 直流电机及驱动 九、开发步骤 十、输出比较库函数…...
《Easy3d+Qt+VTK》学习
《Easy3dQtVTK》学习-1、编译与配置 一、编译二、配置注 一、编译 1、 资源下载:easy3d giuhub 2、解压缩 3、用qt打开CMakeLists.txt即可 4、点击项目,选择debug或者release,图中3处可自行选择,因为我的qt版本是6,…...
多平台展示预约的服装小程序效果如何
线下实体服装店非常多,主要以同城生意为主,但随着电商经济增长,传统线下自然流量变少,商家们会选择线上入驻平台开店获得更多线上用户,包括自建私域小程序等。 而除了直接卖货外,线上展示预约在服装行业也…...
Gti GUI添加标签
通过Git Gui打开项目,通过菜单打开分支历史,我这里是名为"develop"的分支 选中需要打标签的commit,右键-Create tag即可 但貌似无法删除标签,只能通过git bash,本地标签通过git tag -d tagname,…...
高云GW1NSR-4C开发板M3硬核应用
1.M3硬核IP下载:Embedded M3 Hard Core in GW1NS-4C - 科技 - 广东高云半导体科技股份有限公司 (gowinsemi.com.cn) 特别说明:IDE必须是1.9.9及以后版本,1.9.8会导致编译失败(1.9.8下1.1.3版本IP核可用) 以下根据官方…...
【RTOS学习】模拟实现任务切换 | 寄存器和栈的变化
🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀认识任务切换🏐切换的实质🏐栈中的内容🏐切…...
1.2 轻量级数据交互格式–JSON
对于接口来说,数据交互大部分都是使用的JSON格式,我们这里说的数据,就是我们上一章里讲解HTTP协议的时候,HTTP协议结构里的实体,也就是放在body里。body里存放需要传输的数据,数据是JSON格式,然后通过HTTP协议来传输给接口,接口再以同样的方式给我们返回。理解了这一层…...
charCodeAt() 方法
charCodeAt() 是 JavaScript 中用于获取字符串指定位置字符的 Unicode 编码的方法 语法如下: str.charCodeAt(index) str:要获取字符的字符串。index:要获取的字符在字符串中的索引。返回值是一个表示给定索引处字符 Unicode 编码的整数。…...
Flask中redis的配置与使用
注意点: 在__init__.py中需要将redis_store设置成全局变量,这样方便其他文件导入 一、config.py import logging import os from datetime import timedeltafrom redis import StrictRedisclass Config:# 调试信息DEBUG TrueSECRET_KEY os.urandom(3…...
生产者与消费者模型
初识linux之线程同步与生产者消费者模型_生产者线程和消费者线程-CSDN博客 Linux线程(三)—— 多线程(生产者消费者模型、信号量、线程池)-CSDN博客...
透析回溯的模板
关卡名 认识回溯思想 我会了✔️ 内容 1.复习递归和N叉树,理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 回溯可以视为递归的拓展,很多思想和解法都与递归密切相关,在很多…...
浅谈web性能测试
什么是性能测试? web性能应该注意些什么? 性能测试,简而言之就是模仿用户对一个系统进行大批量的操作,得出系统各项性能指标和性能瓶颈,并从中发现存在的问题,通过多方协助调优的过程。而web端的性能测试…...
基于SpringBoot的民宿预订与评价系统毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot与Vue框架的民宿预订与评价系统以解决当前旅游住宿服务领域存在的信息不对称问题用户体验碎片化问题以及数据管理分散化问题该…...
在自动化部署流程中集成 TaoToken 大模型 API 调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在自动化部署流程中集成 TaoToken 大模型 API 调用 将大模型能力融入自动化部署流程,正成为提升 DevOps 效率的新范式。…...
基于SpringBoot的广西特色水果电商平台的设计与实现
本课题的选题依据及研究意义 一、选题依据和意义 (一)选题依据 随着互联网经济的深入发展,电子商务在推动全球经济发展中发挥了重要作用。其中生鲜电商已成为农产品销售的重要渠道。广西作为我国热带水果的重要产区,对其传统水果产…...
瑞萨RA4L1 MCU:低功耗与硬件安全设计解析及开发实战
1. 瑞萨RA4L1深度解析:一颗为低功耗与安全而生的MCU最近瑞萨电子更新了他们的RA系列MCU产品线,推出了RA4L1。作为一线嵌入式开发者,每当有新的MCU发布,我总会习惯性地去扒一扒它的数据手册和应用笔记,看看这颗芯片到底…...
STM32F4的CAN总线配置避坑指南:从原理图到500Kbps通信的完整流程
STM32F4的CAN总线配置避坑指南:从原理图到500Kbps通信的完整流程 CAN总线作为工业控制领域的经典通信协议,在STM32F4系列开发中却常因硬件设计盲区和软件配置细节导致通信失败。本文将带您穿越从原理图设计到稳定实现500Kbps通信的全流程,重点…...
Windows Cleaner:拯救C盘爆红的终极免费解决方案
Windows Cleaner:拯救C盘爆红的终极免费解决方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当你的电脑屏幕突然弹出"C盘空间不足"的红…...
企业内网开发环境通过Taotoken安全调用外部大模型API
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内网开发环境通过Taotoken安全调用外部大模型API 对于许多企业开发团队而言,在内部研发流程中引入大模型能力已成为…...
Linux内核模块管理:lsmod命令详解与实战应用
1. 项目概述:从“黑盒”到“白盒”,lsmod是你的系统模块探照灯如果你在Linux世界里待过一阵子,尤其是折腾过驱动、内核或者排查过一些稀奇古怪的系统问题,那你大概率听说过或者用过lsmod这个命令。乍一看,它的名字平平…...
2026 及下一阶段 工业 AI 与企业级 Agent 布局
JBoltAI 作为面向企业 Java 技术团队的 AI 应用开发框架,围绕 工业 AI 与企业级 Agent 领域的向量空间应用,明确了 2026 年及下一阶段的核心布局方向,聚焦产业实际需求推进技术落地。工业场景的 AI 落地,核心难点并非技术本身&…...
【MQTT】paho.mqtt.c 库的“异步/同步模式选择、编译配置与实战” 深度解析,附嵌入式客户端开发指南
1. MQTT与paho.mqtt.c库的核心价值 在物联网设备通信领域,MQTT协议凭借其轻量级、低功耗和发布/订阅模式的优势,已经成为设备间通信的事实标准。而Eclipse Paho项目提供的paho.mqtt.c库,则是C语言开发者实现MQTT客户端功能的首选工具包。这个…...
