在使用VS外接程序时,包含Q_OBJECT宏会导致编译器错误

Including Q_OBJECT macro causes compiler errors when using VS add-in

本文关键字:OBJECT 错误 编译器 包含 VS 程序      更新时间:2023-10-16

我正在使用Visual Studio外接程序尝试在Visual Studio中创建QT项目。当我创建一个使用Q_OBJECT宏的新类时,会出现编译器错误。删除宏会使错误消失。这是一个示例头文件。

#ifndef TELEVISION_H
#define TELEVISION_H
#include <QObject>
#include <Qtqwidget.h>
#include <Qtqpainter.h>
class Television : public QWidget
{
    //Q_OBJECT
public:
    explicit Television(QWidget *parent = 0);
}
#endif

Q_OBJECT行进行取消注释和重新注释会导致编译器错误时有发生。错误都在moc_television.cpp(自动生成的cpp文件)中。这些错误似乎没有帮助,例如:

1> GeneratedFiles\Debug\moc_Television.cpp(20):错误C2146:语法错误:缺少";"在标识符"qt_meta_data_Television"之前

为什么会发生这种情况,我该如何解决?

在类Television定义的末尾缺少一个分号。

相关文章: