2012-01-24 67 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