2012-01-24 86 views
0

我正在使用Visual Studio加载项尝试在Visual Studio中创建QT项目。当我创建使用Q_OBJECT宏的新类时,出现编译器错误。删除宏使错误消失。这是一个示例头文件。包括Q_OBJECT宏在使用VS加载项时导致编译器错误

#ifndef TELEVISION_H 
#define TELEVISION_H 

#include <QObject> 
#include <Qt\qwidget.h> 
#include <Qt\qpainter.h> 

class Television : public QWidget 
{ 
    //Q_OBJECT 

public: 
    explicit Television(QWidget *parent = 0); 
} 

#endif 

取消注释并重新征求意见的Q_OBJECT线,使编译器错误来来去去。错误全部在moc_television.cpp(自动生成的cpp文件)中。的误差似乎没有帮助的,例如:

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

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

回答

1

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

+0

这似乎发生的方式太多..谢谢 – zebra

+0

这个答案帮了我很多。得到了类似的问题,但在我的一个mocfiles上出现了“错误C2334:'{';跳过明显的函数体”之前的意外标记。错过了一个“};”在文件的结尾处... – chikuba