天天看点

Qt添加类文件编译后,再添加宏Q_OBJECT问题简述解决方法

问题简述

创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏Q_OBJECT,后面项目需要,又加入了宏Q_OBJECT,但是发现只是添加了一个宏Q_OBJECT,除此之外没有改动其它的代码,原本编译通过的程序编译不过,会提示一些错误。

解决方法

将项目清除,然后执行qmake,再重新编译,便可以编译通过。

分析

上述问题是由qt的moc编译文件引起的,因为之前编译生成的moc文件时没有宏Q_OBJECT,现在添加了宏之后,直接编译,程序会默认使用之前已经存在的moc文件,而代码却是有所改动,(新添加宏Q_OBJECT),需要将之前的moc删除后,重新编译生成新的moc中间文件。

Qt

继续阅读