关于Qt报出Undefined reference to vtable for xxx的问题

关于Qt报出Undefined reference to vtable for xxx的问题

  前些天无意间遇到这个问题,重新构建还是不行,最后仔细一想就是Qt中的原对象在搞鬼,特此做下笔记。

问题现象

这里写图片描述

问题描述

  程序之前运行时完好的,当向其中加入Q_OBJECT后会出现如上问题,程序本省没有错误。

解决方法

  关闭工程,删除影子构建目录,重新打开工程,编译即可!

原因分析

  发生这个问题的原因是因为,Qt中最核心的机制—原对象机制,我们平时写的代码在经过原对象编译器编译后生成中间文件moc_xxx.cpp文件,在该文件中记录了Qt中核心的信号和槽机制,这里会进行相应的处理,而关键的地方是,是否包含Q_OBJECT宏,该宏决定了生成中间文件时的格式,所以需要重新编译原对象编译器才能识别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值