Qt 專案對vtable 的未定義引用:解決問題
使用Code::Blocks 和mingw 編譯器編譯Qt 專案時,可能會出現「未定義對vtable 的引用」錯誤。此錯誤是由於虛擬方法表 (vtable) 的連結資訊缺失或不完整而導致的。
要解決此問題,需要確保在編譯過程中正確產生 vtable。在提供的範例中,問題與 AddressBook 類別有關。 AddressBook.h 中的類別定義宣告了 Q_OBJECT 巨集,該巨集負責產生 vtable。但是,AddressBook.cpp 原始檔不包含#include
要解決此問題,請在 AddressBook.cpp 的開頭添加以下行:
<code class="cpp">#include <QObject></code>
這將包括必要的header 並允許編譯器正確產生 vtable。然後錯誤應該會解決。
對於Qt Creator 用戶,可以透過以下步驟觸發重建來解決問題:
這將強制產生 Makefile 並重新編譯項目,確保正確產生 vtable。
以上是如何解決 Qt 專案中的「未定義的 vtable 引用」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!