【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