undefined reference to vtable for "xxx::xxx" in QT(已解决)

#PS:请尊重原创,不喜勿喷


#PS:要转载请注明出处,本人版权所有


#PS:这个只是  《  我自己    》理解,如果和你的原则相冲突,请


谅解,勿喷 


近日编译一个项目时,由于在错误状态下不小心编译一次了.当改了代码后(确认代码正确),在进行编译的时候,就会出现undefined reference to vtable for "xxx::xxx" .


看到这个错误,别慌,他不是一个语言级的错误,而是qt的编译机制引起的.首先,看你的程序中是不是有qt的不同于c++的特性(一般来说就是有没有Q_OBJECT的宏定义).如果没有,就按照标准的C++规则编译,如果有,那么那个部分就会先被生成一个.把标准的.cpp文件(并不替换原来的cpp,而是参与编译).然后在进行标准c++的编译工作.其实就是这个部分引起的错误.而这个部分也叫做元对象编译(MOC).

解决办法:删除build文件夹,切记删除整个文件夹.(这貌似是qt的一个bug,因为我全部重新编译,清除所有文件后在重新编译都是一样的错误)


#PS:请尊重原创,不喜勿喷


#PS:要转载请注明出处,本人版权所有


有问题请留言,看到后我会第一时间回复



你可能感兴趣的:(语言,qt)