QT报错: can‘t find linker symbol for virtual table fors Widget

QT报错: can’t find linker symbol for virtual table fors Widget

今天碰到一个诡异的错误,我的QWidget项目之前还好好的,今天突然一调试运行就报这个错。我百度了下,看到了这两位前辈的记录:
QT信号槽报错can’t find linker symbol for virtual table fors
can’t find linker symbol for virtual table for “function”
以及QT官网论坛关于这个问题的讨论:
Can’t find linker symbol for virtual table
但我的情况和这些现象都不怎么相符。但是他们的解决思路提醒了我。于是多加了许多断点一步步看。最后发现是由于我的QWidget子类的构造函数里,读取了一个CSV,但是由于我安装exe的路径不小心写错了,于是构造函数找不到这个CSV,就报错跳出了。
这个故事告诉我们,遇到这种看上去很唬人的报错不要慌,一步步调,多半还是你自己的代码出了什么神奇的错误……
也有时候可能是下面这种原因:
生成的moc没有链接进库导致的虚函数表错乱。
这种情况下,就尝试把原先的构建都清除掉。.o文件和moc文件全部删除,MakeFile文件也都清空掉。重新执行qmake,重新构建。就能解决问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值