Qt hiba - undefined reference to vtable, aleks misyuk - s blog

Programozási Qt és időről időre ellenőrzi a fórumokon, meg kell megjegyezni, hogy a programozók gyakran küzd hasonló üzeneteket «undefined reference to vtable».

Megpróbálom leírni a helyzetet, amikor ez a hiba akkor fordulhat elő, és ad egy pár tippet, hogyan lehet elkerülni azt.

ez az üzenet bukkan fel gyakrabban, ha használ MOC.
MOC (Meta-Object Compiler, lefordítva meta-objektum rendszer / fordító) - egy olyan mechanizmus, amely kiterjeszti a C ++ szintaxis.
MOC:

  • mechanizmus szükséges jelző rések;
  • Ez lehetővé teszi a programozó, így meta-információt alosztálya QObject (QObject :: metaobjektum ());
  • használt nemzetközivé alkalmazás (QObject :: tr ());
  • Ez tartalmazza hasznos kiterjesztések C ++ szintaxist.

MOC fordító megkeresi és kezeli az összes fejléc a projekt.

Ha hiba történik «undefined reference to vtable» először tisztítsa meg a projekt, és újjáépíteni, ne felejtsd el futtatni qmake:

make clean
# Manuálisan törölje az összes MOC-fájlokat, ha maradt, miután a make clean
rm Makefile
qmake
csinál

Ha a probléma továbbra is fennáll, akkor nézd meg a projekt fájlt (* .pro). Ellenőrizze, hogy minden szükséges header fájlokat (beleértve a jeleket és a rések különösen) vontak be a projektbe. List header fájlokat kell tartalmaznia egy változó fejlécek:

ADAPTEREK + = firstHeaderFile.h \
otherHeaderFile.h \
secondHeaderFile.h

Ha használja a projektben mappát, amely a header fájlok, akkor tegyük hozzá, ezt a mappát a változó INCLUDEPATH:

Ha megtalálta a kihagyott h-, HPP-fájl - újjáépíteni a projekt újra.

A probléma továbbra is fennáll? Ezután több lehetőség:

Kapcsolódó cikkek