QT 编译出现 undefined reference to `vtable for xx' 的解决方法

Qtundefined reference to ‘XXXX‘ 问题描述 通过指针实现页面跳转 Qt报错 错误代码 private slots: void Pb_Multi_Level(); void Pb_Multi_Component(); 思路 未定义Dialog类中按钮的引用。 实现页面跳转是在三个页面(三个不同的类)下进行,因此在函数定义上,需要在public public: void Pb_Multi_Level(); void Pb_Multi_Component(); ... 阅读详情

 现象:编译出现 undefined reference to `vtable for xx'

原因:程序开始没有加入 Q_OBJECT ,后由于要加入slots等信号-槽 的机制,所以加入了 Q_OBJECT  关键字。但是makefile文件没有重新生成新的。

MOC(Meta-Object-Compiler): 对于所有使用了Q_OBJECT宏的类,在编译时都需要通过MOC的处理,否则会出现链接错误。

解决:该错误的办法也很简单,重新执行qmake以更新makefile,然后重新编译。(即删除Makefile等相关的三个文件:MakefileMakefile.DebugMakefile.Release。然后【构建】->【执行qmake】,最后再 “构建项目”)

QT基础入门【QT错误处理】error: undefined reference to `vtable for解决方法 根本原因是,只点击运行,不会编译新添加的宏Q_OBJECT。因此在这之前要执行“重新构建”,让moc编译器去预编译Q_OBJECT,然后再运行,就不再报错了。导致错误信息的原因是:子类没有实现父类的。宏,然后直接运行,都会造成这个错误。实际原因可能是在Qt中一个类中添加了。首先执行“重新构建”,然后再运行。 阅读详情

相关推荐

Qt】报错error: undefined reference to `vtable for解决方法

1、问题描述 编译Qt程序时,在某个类构造函数定义处报错: error: undefined reference to `vtable for 2、原因分析 导致错误信息的原因是:子类没有实现父类的纯虚函数; 在Qt中,首先要想到的是在一个类中添加了新的继承QObject,并添加了 Q_OBJECT 宏,然后执行构造或重新构造,都会造成这个错误。 根本原因是,只执行构造或重新构造,都不会编译新添...

郭老二 3万+

Qtundefined reference to报错的三种可能性和解决方法(以libgdal为例)

有一段代码很久没动了,今天想跑起来编译看看,突然发现出现一堆报错,如下: 好吧,首先我能保证的是,有之前调试代码过程中,这些报错一定是没有出现的。最近也没什么动作,怎么就忽然就出现了。 不管怎么说,解决问题是关键。 单纯这个报错内容来看,很典型的undefined reference to的报错,这个报错在调用第三方库的编程中,简直是家常便饭,代表的含义也很明确,就是找不到函数的定义。 用C++写代码的都知道,在C++中,代码是分为声明和定义的,声明就是告诉编译器有这个函数,换言之,就是个名字,而定义,就

baidu_31788709的博客 6万+

Qt】error: undefined reference to `vtable for MainWindow‘

1、问题描述 在写一个demo时,想尽量简单,就把MainWindow类的定义和实现都写在main.cpp中,结果编译时报错: main.cpp:-1: error: undefined reference to `vtable for MainWindow' :-1: error: collect2.exe: error: ld returned 1 exit status 2、原因分析 错误信息vtable 表示子类没有把父类的纯虚函数全部重新实现。 一般我们会把MainWindow的定义和实现分别写

郭老二 4113

undefined reference to `vtable for’”问题的原因及解决方法

如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有可能会出现"undefined reference to `vtable for’…有时候,手快(尤其程序员非常迷恋快捷键【doge】),会不小心跳过一些关键步骤,导致出现一些问题。如果添加后,没有马上编译,而是编写了很多业务代码后编译,才发现qt给你报了大量错误。经过自己摸索,还有网友的提示,总结了一些方法供大家参考。

工作学习记录 8万+

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

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

chenlong12580的专栏 6万+

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

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

静水深流 3万+

Qt编译错误undefined reference to `vtable for MainWindow'

0. 写在最前面 我是用CMake来构建Qt工程时出现了这个错误,直观意思是MainWindow的虚表没有定义,猜测是某些子类没有构建成功,无法链接。我这里已经按照官方的意思把 set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_PREFIX_PATH 、yourQtPath/5.10.1/gcc_...

白夜行的狼 9259

undefined reference to `vtable for XXX '

<br />一:<br />预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数。如果得到类似于“undefined reference to vtable for LcdNumber”的编译错误(if you get compiler errors along the lines of "undefined reference to vtable for LcdNumber"),你可能是忘记了执行moc,或者忘记了将moc输出加入到link命令里。<br /><br />

EK的专栏 1万+

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

<br />(橙色部分主要内容)<br />由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道。<br />今天我在这里列举的问题也是再编写Qt程序时,总是遇到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,它就是-- “undefined reference to `vtable for”可能你看着很熟悉,似乎在

tykgls的专栏 3705

Qt编译错误 error: undefined reference to `vtable for

qt中会不小心遇到error: undefined reference to `vtable for ....'原来是是子类的一个虚函数声明了,但是,在.cpp中没有定义 实现代码。 比如在.h中把~hellodialog()屏蔽掉后; : 1 class hellodialog : public QDialog 2 { 3 Q_OBJECT 4 publ...

dijianfei2190的博客 670

QT解决undefined reference to vtable的万能办法

QT编译彻底解决undefined reference to vtable 在改以前的QT工程时,SLOT找不到的警告只有运行才会出现。即使加了Q_OBJECT 也是错误不断,怎么删除也会有undefined reference to vtable的报错。后面发现完全是因为Makefile的不更新,导致了生成不了moc_.cpp文件,无法完成编译 下面是在编译目录下的 object_script....

qq_38337691的博客 4343

Qt经典出错信息之undefined reference to `vtable for classname

原文链接:Qt经典出错信息之undefined reference to `vtable for classname 这个出错信息太常见了,用过Qt两个月以上的朋友基本上都能自己解决了,因为太经典了,可以给新手参考。 出错信息一般类似:undefined reference to vtable for classname MyWidget 在执行make命令后出现。 出错原因是在定义类的时候为了能使用signals和slot,在类定义的后面加了Q_OBJECT引起。 因为Q_OBJECT是一个宏,在不同的类

发呆的程序猿 989

Qtundefined reference to `vtable for xxx’

00. 目录 文章目录00. 目录01. 问题描述02. 问题分析03. 问题解决04. 预留05. 附录 01. 问题描述 编译Qt项目的时候,出现undefined reference to vtable for ToolButton,意思是指定的控件的虚表没有定义。 02. 问题分析 QT中支持信号与槽机制,需要继承自QObject并在头文件开头添加Q_OBJECT宏.如果使用QtCreator 创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OB

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1488
上一篇: 一个使用QtXmlPatterns模块读取xml 的例子
下一篇: 虚拟机VMware下的Ubuntu不识别USB设备问题的解决方法
polokang
博客等级 码龄24年 38粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值