QT 错误集:vtable for xxx;ZdaPvj

一、vtable for xxx

自己创建类的时候没有选继承,默认连Q_OBJECT都没有

class SelectScene : public xxx
{
    //原来没有写Q_OBJECT
public:
    explicit SelectScene(QWidget *parent = nullptr);

signals:

public slots:

};

而后自己发现没有Q_OBJECT后信号槽用不了,又补上但是报错了一堆,如题:error: undefined reference to `vtable for xxx'。很纳闷,重新创建一个新文件运行成功,但是再复制粘贴过来却不行。于是查阅资料发现是编译的问题,编译过再添加Q_OBJECT的话就会出现这个问题。

原因是Q_OBJECT宏内包含了纯虚函数,而子类没有实现父类的纯虚函数。初次编译后再进行添加此宏之后再编译是不会编译新加的宏的。

解决方法:需要先进行qmake


 

二、使用windeployqt.exe打包仍报错,ZdaPvj缺少动态库

使用自带的命令行使用就会出现这个问题。其实QT安装的时候会自带命令行,从自带的命令行使用就不会出错。如图:

 在此上面进行一样的操作即可解决问题。

xxx/windeployqt.exe  ./xxx.exe即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值