undefined reference to `vtable for错误

server/2024/12/26 13:14:20/

QT构建报错:

D:\code\QGraphicsScaleTest\main.cpp:-1: error: undefined reference to `vtable for ResizableSvgView'

VS编译报错:

1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl ResizableSvgView::metaObject(void)const " (?metaObject@ResizableSvgView@@UEBAPEBUQMetaObject@@XZ)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __cdecl ResizableSvgView::qt_metacast(char const *)" (?qt_metacast@ResizableSvgView@@UEAAPEAXPEBD@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __cdecl ResizableSvgView::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@ResizableSvgView@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
1>debug\\QGraphicsScaleTest.exe : fatal error LNK1120: 3 个无法解析的外部命令

根本原因是在使用 Q_OBJECT 宏时,Qt 的元对象系统会生成一些额外的代码(例如信号、槽和动态属性的支持)。这个过程要求 Qt 在编译时生成和链接一些特定的符号,比如虚表 (vtable) 和其他元对象信息。如果没有正确执行 Qt 的元对象编译步骤,就会看到 undefined reference to ‘vtable for ResizableSvgView’ 这样的错误。

每当使用 Q_OBJECT 宏时,Qt 的 Meta-Object Compiler (MOC) 需要自动生成一个 .moc 文件,在我这个错误中,我发现没有生成moc文件,后面发现是我没有在pro文件中加入自己写的类文件,在使用Q_OBJECT宏的类中,一定要分开写头文件和cpp文件,并且加入到pro文件中,不然编译会报错

SOURCES += \resizablesvgview.cpp \HEADERS += \resizablesvgview.h \

http://www.ppmy.cn/server/153324.html

相关文章

大模型讲师叶梓分享前沿论文:ChatDoctor——基于大模型的医疗聊天机器人

人工智能咨询培训老师叶梓 转载标明出处 人工智能讲师培训咨询老师叶梓分享前沿技术:基于大模型的医疗聊天机器人 大模型在医疗领域的应用仍相对有限,通用领域模型在提供医疗建议时常常出现错误。为了解决这一问题,Li等人提出了一个名为ChatD…

Java全栈项目 - 智能考勤管理系统

项目介绍 智能考勤管理系统是一个基于 Java 全栈技术开发的现代化企业考勤解决方案。该系统采用前后端分离架构,实现了员工考勤、请假管理、统计分析等核心功能,旨在帮助企业提高人力资源管理效率。 技术栈 后端技术 Spring Boot 2.6.xSpring Securi…

golang实现yaml配置文件的解析

原文地址:golang实现yaml配置文件的解析 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 代码 需要建立3个文件,目录结构如下: 配置文件 conf.yaml redis: host: "127.0.0.1"port: 6379db: 11 …

后端接口返回文件流,前端下载(java+vue)

各位小伙伴们大家好,欢迎来到这个小扎扎的专栏 总结 | 提效 | 拓展,在这个系列专栏中记录了博主在学习期间总结的大块知识点,以及日常工作中遇到的各种技术点 ┗|`O′|┛ ?? 内容速览 后端获取前端下载 本身前端是可以直接通过文…

鸿蒙UI开发——自定义主题色

1、概述 ArkTs提供了应用内主题切换功能,支持全局主题切换,也支持局部主题切换,效果如下。本文针对主题切换做简单介绍。 2、主题色 ArkTs提供了一套内置主题配色,有Colors对象持有,它包含了默认情况下,关…

IntelliJ IDEA 基本使用教程及Spring Boot项目搭建实战

​ 目录 ​一、简介 二、IntelliJ IDEA 基本使用 三、Spring Boot 项目搭建 一、简介 IntelliJ IDEA 是由 JetBrains 开发的一款强大的 Java 集成开发环境(IDE),广泛用于 Java、Kotlin、Groovy、Scala、Spring 和 Android 等项目的开发。…

Docker 安装Mysql

1.打开docker目录 cd /usr/local/mkdir docker2.创建mysql文件夹 cd /usr/local/dockermkdir mysql3.打开mysql文件夹 cd mysql/4.创建配置文件目录 mkdir config5.打开config cd config/6.编写配置文件 vim my.cnf复制如下: [client] # 端口号 port3306[mysq…

「Java EE开发指南」如何用MyEclipse构建一个Web项目?(一)

在本文中您将找到有关Web项目的信息,将了解: Web项目结构和参数Web开发高效率工具JSP代码完成和验证 这些功能在MyEclipse中可用。 MyEclipse v2024.1离线版下载 一、Web项目结构 用最简单的术语来说,MyEclipse Web项目是一个Eclipse Ja…