我想在Qt中使用MinGW編譯器創建一個簡單的GUI應用程序(至今)。但是,編譯器通知我,我有一個multiple definition of 'WiimoteScouter::WiimoteScouter(QWidget*)'
,line 4
的wiimotescouter.cpp
。我正在使用一個檢查來確保標題不被多次包含,但顯然它不工作,我不知道爲什麼。C++ Qt多重定義
這裏的頭文件:
#ifndef WIIMOTESCOUTER_H
#define WIIMOTESCOUTER_H
#include <QWidget>
class QLabel;
class QLineEdit;
class QTextEdit;
class WiimoteScouter : public QWidget
{
Q_OBJECT
public:
WiimoteScouter(QWidget *parent = 0);
private:
QLineEdit *eventLine;
};
#endif // WIIMOTESCOUTER_H
而這裏的cpp文件:
#include <QtGui>
#include "wiimotescouter.h"
WiimoteScouter::WiimoteScouter(QWidget *parent) :
QWidget(parent)
{
QLabel *eventLabel = new QLabel(tr("Event:"));
eventLine = new QLineEdit;
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(eventLabel, 0, 0);
mainLayout->addWidget(eventLine, 0, 1);
setLayout(mainLayout);
setWindowTitle(tr("Wiimote Alliance Scouter"));
}
最後,main.cpp中:
#include <QtGui>
#include "wiimotescouter.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
WiimoteScouter wiimoteScouter;
wiimoteScouter.show();
return app.exec();
}
這聽起來更像是一個鏈接器錯誤,而不是編譯器錯誤。 .pro文件中是否有多個.cpp文件?發佈完整的錯誤信息也會有幫助。 – 2011-02-11 02:47:26