error: undefined reference to `CustomButton::staticMetaObject‘

qt5编译项目出现undefined reference to 'classname::staticmetaobject' 在qt项目开发中,编译时出现如下错误: error:undefined reference to 'classname::staticmetaobject' error:undefined reference to 'vtable for classname' 出现这个错误,应该是moc出现了问题。 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这... 阅读详情

错误描述:

~/practice/code/qthelper/src/Widget.cpp:26: undefined reference to `CustomButton::staticMetaObject’

背景:

在学习通过反射实现动态创建实例,从而在tableview中添加自定义控件。为了偷懒就直接创建的hpp文件,因为对cmake及Qt不熟,导致这个问题。

原因:

Qt在编译时会对cpp进行前期处理生成moc文件,而我把hpp当成了普通的.h文件,只是源文件中包含了该头文件,没有添加到目标依赖,编译时没有生成该文件对应的moc文件导致。

解决办法:

修改前:

...省略一万句... 
add_executable(${PROJECT_NAME}
    ${srcs}
) 
...省略一万句...

修改后:

...省略一万句... 
add_executable(${PROJECT_NAME}
    ${srcs}
    ./src/CustomControl.hpp  # 就是这个玩意儿,加上就编译过了。
) 
...省略一万句...

源文件都是一样的没有改动


#include "Widget.h"
#include "helper/SignalHelper.h"
#include "helper/ReflectHelper.h"
#include "CustomControl.hpp"
#include <QDebug>

Widget::Widget(QWidget* parent)
    : QWidget(parent)
{
}
...
省略一万句
...

错误是一个很常见的错误,造成的原因却是很无奈。
避坑!
避坑!
避坑!

STM32Cube高效开发教程<高级篇><FreeRTOS>(十八)-----软件定时器 一、 软件定时器概述声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(高级篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。在FreeRTOS中,自动创建的任务有空闲任务和定时器服务任务。FreeRTOS可以通过定时器服务任务提供软件定时器功能。在某些对定时精度要求不太高,无须使用硬件定时器的情况下,我们可以使用FreeRTOS的软件定时器。 阅读详情

相关推荐

深入理解命名实体识别(NER)

命名实体识别(NER,Named Entity Recognition)是自然语言处理(NLP)中的一项重要技术,用于从文本中识别出特定类型的实体,并将这些实体分类到预定义的类别中。实体通常包括人名、地名、组织名、日期、时间、数量、货币等。例如,在句子“Barack Obama was born in Hawaii in 1961”中,NER任务的目标是识别“Barack Obama”作为人名,“Hawaii”作为地名,以及“1961”作为日期。

AngelCryToo的专栏 4638

使用QtService接口的时候出现undefined reference to `::staticMetaObject'

在Qt开发中,当我们在项目引用一些其它的头文件的时候,比如QtService的接口,因为对于这类接口,我们没有库文件,但是编译的时候可能会出现undefined reference to `::staticMetaObject'的错误,那可能就是因为没有把接口文件include到项目里了。     那是因为什么呢?因为如果没有在项目中include头文件,那qmake就不会去创建对应的元对象相关

kentonwu的博客 5942

全志T113s3主线linux开发(0)--基础准备

嵌入式Linux设备的启动大概是三步:1)启动芯片+内存:常见的是Uboot,不过全志的Uboot主线对SPI NAND 不太友好,用TF卡就方便。对于T113S芯片,推荐使用Awboot,简陋但快速。开发阶段用这个就方便好多,对SPINAND支持也方便。2)启动linux内核:主线内核以下通篇都用6.13以上的内核。对比tina5.0还在用5.4 ,主要是性能、安全上有变化。6.0以上内核在devicetree的编写具体格式上有了变化,网上大量tina5.0和5.4内核的编写方式不适用。

2301_79234138的博客 2246

undefined reference to `XXX::staticMetaObject‘

Qt手动添加Q_OBJECT产生错误。

一白梦人的博客 1160

GD32H7实战:5步搞定YOLO轻量化模型部署到MCU(附避坑指南)

本文详细介绍了如何将YOLO轻量化模型部署到GD32H7 MCU的完整实战流程。通过五个关键步骤,涵盖环境搭建、模型训练、格式转换到工程集成,并重点分享了使用GD32AI-ModelZoo工具链进行MCU部署的避坑指南,帮助开发者在资源受限的边缘设备上实现高效目标检测。

weixin_29070861的博客 445

VMware ESXi 系统里创建虚拟机,虚拟磁盘日志损坏,如何或者把数据备份?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1636

QtQML开发中一些小问题记录

1、QT开发过程中,遇到一个很奇葩的问题,报异常直接报道搜狗拼音输入法中 D:\Program Files (x86)\SogouInput\Components\Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly 这个首先想到的是输...

jiangxiaoyu20的博客 3614

【EB_Tresos专题】-06-配置一个UDS诊断DID

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 4085

QT:关于qt工程在编译时提示undefined reference tp 'XXX::staticMetaObject'

当在编程QT应用程序在类的定义zhongbaohan

Code_Thinking的专栏 6586

[特殊字符] PetaLinux Qt 程序(WindRadar)无法自动启动问题解决文档

摘要:本文档解决了PetaLinux 2020.1系统中Qt程序(WindRadar)无法开机自动显示界面的问题。通过分析发现,自动启动时缺少DISPLAY=:0.0环境变量导致Qt找不到显示设备。最终在autostart.sh脚本中添加该变量,并完善了字体加载、驱动加载、显示设备检测等流程,确保程序正常自启显示界面。完整脚本包含路径检测、环境配置和错误处理,经验证各项功能均正常运行。

梁俊星的博客 326

AI漫剧全套万能提示词合集

今天给大家整理一套已经跑通爆款漫剧的万能提示词库!覆盖:豆包剧本人设词 + 分镜生成词 + 即梦绘图词 + 动态优化词 + 防翻车固定词直接复制粘贴,新手也能做出稳定、高清、统一、有质感的AI漫剧!你是资深短视频漫剧编剧,擅长制作60秒竖屏爆款AI漫剧,请为我创作一集完整漫剧内容。要求:开头3秒高能抓眼,中段有冲突转折,结尾留强悬念钩子,节奏紧凑、适合短视频流量。首先生成固定统一人物人设:包含脸型、五官、发色、发型、穿搭、身材、气质、画风、光影细节,要求足够精细,保证全程角色不变脸。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1866

QT5.7报错error: undefined reference to `XXX::staticMetaObject'

问题:在自定义的类中开关新加入Q_OBJECT后直接编译提示此错误。 解决办法:将此项目清理,重新qmake、运行。

qq_27479125的博客 3837

【SOUND】Linux音频子系统ASoC的驱动框架总分析

ALSA系统在芯片(ASoC)层的总体项目目标是为嵌入式芯片处理器(例如PXA2XX,AU1X00,IMX等)和便携式音频编解码器提供更好的ALSA支持。 在进入ASoC子系统之前,内核对SoC音频有一些支持,但是它有一些局限性:ASoC层旨在解决这些问题并提供以下内容特征 :为了实现这一切,ASoC基本上将嵌入式音频系统分为多个可重复使用的组件驱动程序:另外,这里提下OSS(Open Sound System)这个基本被弃用的音频框架。 可以参考Linux OSS架构声卡驱动框架 2.3 ASoC重要

wang 恒 的博客 1780

【QT 问题】undefined reference to 'vtable for' 或者 'staticMetaObject' is not a member of 'QBaseObject'

undefined reference to ‘vtable for’ 参考链接:https://blog.youkuaiyun.com/wangzhiqian7hao/article/details/83446696#commentBox Qt Creator可能没有反应过来你添加的代码。需要使用Qt Creator的 Build->clean all 然后一定要删除build-××××-Debug下...

David Xiao 1196

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Qt程序关于 undefined refrence to vtable for xxx的解决

今天在编译MITK的教程示例程序时遇到 Error: xxx.cpp.o中未定义的引用vtable for xxx,???虚函数表?还指出我的构造函数是虚函数??WTF,我的构造函数怎么会是虚函数。。。奇怪的是CMakeLists.txt中也写清楚add_executable()需要的源文件, 源文件绝对没有语法问题。 查阅了半天,发现是因为没有手动给xxx.cpp进行moc编译,所以只incl

遥远的她 764

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

undefined reference to错误

1、一种报错情景: 编译静态库没有报错,而编译引用静态库的程序时,报undefined reference to静态库里面函数错误时。 可能原因:函数声明和定义命名不一致。这种错误不好发现,编译静态库不报错是因为在头文件中能找到函数,而在使用静态库函数时找不到实现因而报错。 ...

m0_59666413的博客 3286

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

undefined reference to `xxxxx‘问题解决

分析解决 undefined reference to `xxxx()'不常见的一种愿意和问题

weixin_38137947的博客 402

类中静态变量未定义导致undefined reference to static class member问题的解决方法

undefined reference to ***这个链接错误的花样总是层出不穷(more),这一次是找不到类中的成员。 例子1:undefined reference to VS. 类静态成员变量 在文件A.h中声明了类A与类B: class A { friend class B; static int pa;                  // 注:这里把成员变量声

My World 8665

使用static类成员变量,编译显示undefined reference to错误

在类声明外加 int ClassName::VariantName = -1; //同时还可初始化

站在巨人的肩膀上 6622

QT异常解决方案之 error: reference to 'staticMetaObject' is ambiguous

QT编译错误:error: reference to 'staticMetaObject' is ambiguous 在窗口类派生系统中,如果存在基类没有添加 Q_OBJECT 宏, 则其派生函数均不能添加该宏,否则将会报以上错误。 ...

qq_43058397的博客 1579

【Qt开发】关于编译时报"undefined reference to"问题

前几天做Qt项目时,碰到了许多蛋疼的编译问题,下面便是一个。 例如有两个工程A和B,工程A依赖于工程B。B中定义了一个类和一些方法,在A中调用它们。编译的时候编译器报出undefined reference to some_method的错误。这个意思就是说找不到相关的库吧;查了一下论坛,原来这就是Qt中的一个经典错误。解决方法如下: 在.pro文件中添加上对应的引用库,如 LIBS +=...

mmdev 1757
上一篇: error: ambiguous overload for ‘operator[]‘ (operand types are ‘CXmlNode‘ and ‘int‘)
下一篇: Qt 借助QMetaObject::invokeMethod实现信号&槽
o.d.d
博客等级 码龄7年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值