目的
解决C++ undefined reference to vtable for xxx
类型问题. 主要是由于某种原因导致Makefile里面obj文件没有这个类并没有Q_OBJECT信息,所以在执行Makefile时候也就没有moc xxx.h,最终导致编译连接时候符号决议没找到对应符号。可能你在该类中即使直接或者间接继承自QObject, 并附加有Q_OBJECT, 如果qmake, 重新构建后,但是仍然报此错误, 建议查看pro文件引用include 路径是不是不对 ,我的是这个问题导致, 主要是未链接目标文件导致
stackoverflow
说:
总之,导致“对vtable的引用未定义”错误的三个主要原因:
1. 成员函数缺少其定义。
2. 未链接目标文件。
3. 所有虚函数都有内联定义。
这些原因本身不足以独自导致错误。而是,这些是您解决错误所要解决的问题。不要指望有意制造这些情况中的一种肯定会产生此错误;还有其他要求。请确保解决这些情况将解决此错误。
解决方案:
-
查看您的类定义。查找第一个非内联虚拟函数,该函数不是纯虚函数(不是“ = 0”)