Qt vtable error

解决Qt Linker Error: “undefined reference to vtable” 错误 确保文件在你的.pro文件的HEADERS。 阅读详情
在用Qt进行控制台编程时,很多文件不是由QtCreator自动辅助生成的。
(例如界面编程时用到的ui_xxx.h是辅助自动生成的)。
在控制台程序中同样会使用到信号和槽的机制,这是需要派生类。
#include <QObject>
class xxx:public QObject
{
Q_OBJECT
public:
xxx();
}
这时如果直接编译会报出类似错误:
“undefined reference to 'vtable for xxx”;
出现这个错误的原因和Q_OBJECT有关,在qmake生成Makefile的时候,
这个类的头文件中没有Q_OBJECT,所以相应的Makefile中没有moc xxx.h命令,
因而没有生成moc_xxx.h文件。
我们需要在项目中生成moc_xxx.h文件。
qt不会自动moc cpp文件。
生成方式之一是手动生成:
1. Windows cmd 进入到Qt的bin目录,假设qmake用的是mingw32,
则进入(假设)c:\qt\...\mingw53_32\bin
执行 moc d:\...\xxx.h -o d:\...\moc_xxx.h;
2.将moc_xxx.h添加到工程之中;
3.编译并且执行。


执行之后错误消失,并且程序能够自动运行。
疑问:删除moc_xxx.h之后,再次编译运行之后错误也是没有出现的。而且
清空debug文件夹之后仍然可以生成moc_xxx.cpp和moc_xxx.obj。原因不明。
别再只看K线了!聊聊“板块联动”和“热点轮动”的跟踪方法与工具(实战派分享) 本文深入解析了如何通过板块联动和热点轮动构建高效交易系统。从三维验证框架到主流工具配置,再到持续性热点的五大特征,实战派交易员分享了识别市场主线和预判轮动方向的高阶技巧,帮助投资者摆脱单纯依赖K线的局限,提升交易决策效率。 阅读详情

相关推荐

AI工程化之生成式UI & A2UI(一)

本文系统介绍了生成式UI和Google A2UI技术。生成式UI通过AI直接生成前端代码(完全生成式)或DSL(混合式),实现千人千面的动态界面和研发提效。Google A2UI提出组件级和消息级协议,采用JSON规范实现渲染框架解耦,支持多端渲染。文章详细阐述了A2UI的架构设计,包括协议生成、服务端处理和渲染器实现,并对比了与传统前端框架的差异,指出A2UI本质是UI=F(AI(UI)+AI(state))的创新模式。最后通过playground项目展示了A2UI的实践应用。

qq_34306228的博客 550

QT 错误集:vtable for xxx;ZdaPvj

QT报错

weixin_44806108的博客 578

Qt编译出错:undefined reference to `vtable for XXX‘

/自定义信号函数signals://Q_OBJECT 是一个宏,添加它才能正常使用Qt的信号和槽机制Q_OBJECT//自定义信号函数signals:public://发射信号的函数//自定义槽函数qDebug()<<"执行recSlot()成员函数,输出"<<mess1<<" "<<mess2;public:删除项目的build目录,然后重新编译;或者将main.h文件从项目中排除,然后再重新加载进来,也可以解决。

u_topian的专栏 858

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,然后再执行构造

Turn X7 7048

Qt中关于undefined reference to `vtable for 错误解决

Qt中,undefined reference to ‘vtable for ** 通常出现在打开了宏 Q_OBJECT的程式当中。原因分析:qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,会产生undefined reference to vtable for “xxx::xxx”. 的错误 生成moc是根据Makefile来的,而Makefile是

xuin的博客 875

Qt编译报 undefined vtable问题

在类添加信号槽,继承 QObject 后编译,需要先清理项目 ,然后执行qmake, 再构建就不会出错,需要使用来moc编译一下支持信号槽源文件

weixin_44075027的博客 528

Qt】报错:undefined reference to vtable for和collect2 error ld returned 1 exit status解决方法

报错:undefined reference to vtable for和collect2 error ld returned 1 exit status的问题分析和解决方法

logani的博客 2511

[Qt解错篇]报错:error: undefined reference to vtable for ClassName

编译工程时报错:error: undefined reference to vtable for ClassName,造成这种错误的原因很多,甚至在纯C++编程过程中也可能出现。下面根据自己情况,具体问题具体分析。原因:在原先没有Q_OBJECT关键字的工程中添加了该关键字,但是没有执行qmake,直接编译导致出现该错误。

u013686019的专栏 3253

error: undefined reference to ‘vtable for …’

这个报警就是子类没有实现父类的纯虚函数,奇怪的是自定义的虚函数都已经进行了定义,这个时候需要留意还有一种情况就是Qt中一个类继承了QObject,而且添加了Q_OBJECT宏,此时就可能出现上面的异常。

lswdcyy的博客 3742

Qt5 undefined reference to vtable

学习Qt5,自己写个头文件reader.h定义一个类,结果总是报undefined reference to vtable 方法:移除文件,重新添加 就完美解决了

salmonwilliam的博客 586

QT错误undefined reference to vtable for

qt中 为了使用信号槽 ,添加Q_OBJECT宏,出现如下错误undefined reference to vtable for,两种解决方案 1 删除debug目录中的makefile文件,在从新编译 2 修改pro文件,以达到修给makefile文件的目的(添加删除,空行空格都可以,只要修改pro文件就行.重新编译。

BabyLii的博客 738

qt 编译错误集

【代码】qt 编译错误集。

qq_38821483的博客 737

QT错误改正

根本原因是,只执行构造或重新构造,都不会编译新添加的宏Q_OBJECT。因此在这之前要执行qmake,让moc编译器去预编译Q_OBJECT,然后再执行构造,就不再报错了。在Qt中,首先要想到的是在一个类中添加了新的继承QObject,并添加了Q_OBJECT宏,然后执行构造或重新构造,都会造成这个错误。这个问题遇到好多次了,每次都会忘,然后瞎折腾—番,特此记录下。导致错误信息的原因是:子类没有实现父类的纯虚函数;首先重新执行qmake,然后再执行构造。

qq_34546805的博客 179

QT中的 undefined reference to vtable for "xxx::xxx" 错误解决

First step:please checkk if you miss Q_OBJECT macro! fuck you!!!! QT应用程序在link的时候提示undefined reference to vtable for "xxx::xxx",第一次遇到这个错误的时候还以为是虚函数使用出的问题,当然如果虚函数使用不当,比如在某个实现类中只有声明没有定义,也会报类似的错误。 实际上QT中的

tbag_mashimaro的专栏 815

Qt 出现“undefined reference to `vtable for”原因总结

由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程式的时候,会碰到各种各样这样那样的问题,而且很多是很难,或根本很难找到原因的,即使解决了问题,假如有人问您为什么,您只能回答--不知道; 今天我在这里列举的问题也是再编写Qt程式时,总是碰到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,他就是-- “undefined referen

一个人,在路上 651

qt程序编译报错“error: undefined reference to `vtable for ClassXXX‘”

问题: qt程序编译报错“error: undefined reference to `vtable for ClassXXX’” 原因: 同一个程序的两个不同版本,编译目录(builid-XXX)设置为同一个目录,编译目录有一个版本的编译文件,编译另一个版本时,由于两个版本大部分内容一致,只有少部分不同,导致该问题。 ...

qq_43248127的博客 669

Qt问题】解决error: undefined reference to `vtable for(亲测有效)

信号与槽之间可以进行通信的根本原因是:当在类的头文件中添加Q_OBJECT以后QtCreator会自动的创建一个moc_***.cpp文件,用于实现信号与槽通信的代码。但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自QObject类,而是在后面添加的,则会出现QtCreator没有自动创建moc_***.cpp文件的情况。这种情况下就会报错 : undefined reference to `vtable for ***

Fanjufei的博客 2697

Modbus RTU 、Modbus ASCII及Modbus TCP驱动代码,支持主机和从机两种模式

资源详情请参见:https://handsome-man.blog.csdn.net/article/details/131537654协议栈支持Modbus主机和从机两种模式,并且支持两种模式同时开启。从机支持Modbus RTU 、Modbus ASCII及Modbus TCP 3种模式,主机现在只支持常用的Modbus RTU模式。项目代码可直接编译运行~

上一篇: svn问题1
下一篇: Qt 调用第三方应用程序
itisyu
博客等级 码龄21年 3粉丝 9原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值