【Qt】报错error: undefined reference to `vtable for的解决思路


1.遇到的问题描述

编译时某个构造函数报错:

 1 error: undefined reference to 'vtable for XXX' 

 

2.原因分析

错误的原因:这种情况一般是在继承了QObject的类出现,通常是应为,新定义的子类,没有去实现父类的纯虚函数。

在Qt中,遇到这种情况首先因该想到,在一个类中添加了新继承于Qobject的类,并且还添加了 Q_OBJECT这个宏,

之后不管是构建还是重新构建都会报这个错误,根本原因是只执行构建和重新构建并不会去编译  Q_OBJECT 宏(也不会生成新的moc文件),

因此需要先执行qmake让 moc 编译器预编译 Q_OBJECT 宏。ps:可以每次运行程序前执行一次qmake简单粗暴  

 

3.解决思路

重新执行qmake并重新构建。

一般情况下这个问题就解决了,避免自己忘记做个笔记~

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM