Qt下"Undefined reference to 'vtable for xxx'

QT下遇到这种错误提示时候需要注意以下情况:

一、cpp文件里使用了Q_OBJECT

分析:qmake不会处理.cpp文件里的Q_OBJECT,所以如果在.cpp文件中有它的话将会产生undefined reference to vtable for "xxx::xxx"。 


方法1:先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去。

方法2:由于前面生成的Makefile时包含这个类的头文件并没有Q_OBJECT所以在相应的Makefile里面并没有用moc xxx.h命令最终导致链接失败,此时尝试重新运行qmake

方法3:将包含Q_OBJECT的类声明放到 .h 头文件中,一般程序设计最好也这样做,类型定义放到头文件去做。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值