如何解决Qt自定义类的vtable未定义错误

 时间:2024-10-20 12:29:08

1、这时候错误出现了,可是这个错误很多时候让人摸不着头脑,vtable是虚拟表的意思,类在创建实例的时候,Qt就是靠虚拟表去找类的相关定义的。所以这里出现这个问题,肯定是没有找到定义了。这里如果我去掉Q_OBJECT和所有的信号和槽,问题就能解决了。如下图,界面显示出来了,编译成功:

如何解决Qt自定义类的vtable未定义错误

3、然后我们就要考虑这里我们的项目出错在没有生成moc文件,所以我们需要让项目生成moc文件,经过查找qt帮助文档关于moc的说明,我们知道在类文件的末尾包含xxx.moc文件即可。

如何解决Qt自定义类的vtable未定义错误

5、譬如我直接改为sema.cpp,错误没有再出现,界面显示正常。这种方法才是改正vtable错误的正确方法,当然关于内部的原理及具体的分析我们在日后的文章中再说把。网上其他方式是碰巧给解决了,并非彻底的解决之道,所以这里记录下来供大家参考。最终结果如下图。

如何解决Qt自定义类的vtable未定义错误
  • Microsoft Edge浏览器怎样开启自动翻译功能
  • edge浏览器自带翻译在哪
  • 怎么设置开启edge浏览器的翻译功能?
  • edge自动翻译不弹出来了
  • Matlab中图像的平移和翻转
  • 热门搜索
    海边旅游城市 湖北旅游地图 青岛旅游社 沭阳旅游 柳江古镇旅游攻略 济宁旅游景点大全 河南旅游网 西安航空旅游学院 浙江有哪些旅游景点 黄鹤楼旅游