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: