Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Ralat \"Rujukan Tidak Ditakrifkan kepada vtable\" dalam Projek Qt?

Bagaimana untuk Menyelesaikan Ralat \"Rujukan Tidak Ditakrifkan kepada vtable\" dalam Projek Qt?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 13:14:30634semak imbas

How to Resolve

Qt Project Undefined Rujukan kepada vtable: Menyelesaikan isu

Apabila menyusun projek Qt menggunakan Code::Blocks dan pengkompil mingw, ralat "rujukan tidak ditentukan kepada vtable" mungkin timbul. Ralat ini berlaku kerana maklumat pautan yang hilang atau tidak lengkap untuk jadual kaedah maya (vtable).

Untuk menyelesaikan isu ini, adalah perlu untuk memastikan penjanaan vtable yang betul semasa proses penyusunan. Dalam contoh yang disediakan, isu itu berkaitan dengan kelas Buku Alamat. Takrif kelas dalam AddressBook.h mengisytiharkan makro Q_OBJECT, yang bertanggungjawab untuk menjana vtable. Walau bagaimanapun, fail sumber AddressBook.cpp tidak termasuk #include pengepala, yang penting untuk penjanaan vtable yang betul.

Untuk membetulkan isu ini, tambah baris berikut pada permulaan AddressBook.cpp:

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

Ini akan termasuk yang diperlukan pengepala dan benarkan pengkompil menjana vtable dengan betul. Ralat itu kemudiannya harus diselesaikan.

Untuk pengguna Qt Creator, isu ini boleh diselesaikan dengan mencetuskan binaan semula melalui langkah berikut:

  1. Pilih "Bina" → "Jalankan qmake" .
  2. Pilih "Bina" → "Bina Semula Semua".

Ini akan memaksa penjanaan Makefiles dan menyusun semula projek, memastikan penjanaan vtable yang betul.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \"Rujukan Tidak Ditakrifkan kepada vtable\" dalam Projek Qt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn