首頁 >後端開發 >C++ >如何解決 Qt 專案中的「未定義的 vtable 引用」錯誤?

如何解決 Qt 專案中的「未定義的 vtable 引用」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-02 13:14:30722瀏覽

How to Resolve

Qt 專案對vtable 的未定義引用:解決問題

使用Code::Blocks 和mingw 編譯器編譯Qt 專案時,可能會出現「未定義對vtable 的引用」錯誤。此錯誤是由於虛擬方法表 (vtable) 的連結資訊缺失或不完整而導致的。

要解決此問題,需要確保在編譯過程中正確產生 vtable。在提供的範例中,問題與 AddressBook 類別有關。 AddressBook.h 中的類別定義宣告了 Q_OBJECT 巨集,該巨集負責產生 vtable。但是,AddressBook.cpp 原始檔不包含#include 。標頭,這對於正確產生 vtable 至關重要。

要解決此問題,請在 AddressBook.cpp 的開頭添加以下行:

<code class="cpp">#include <QObject></code>

這將包括必要的header 並允許編譯器正確產生 vtable。然後錯誤應該會解決。

對於Qt Creator 用戶,可以透過以下步驟觸發重建來解決問題:

  1. 選擇“Build”→“Run qmake” .
  2. 選擇“Build” →「Rebuild All」。

這將強制產生 Makefile 並重新編譯項目,確保正確產生 vtable。

以上是如何解決 Qt 專案中的「未定義的 vtable 引用」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn