【发布时间】:2011-06-25 07:00:09
【问题描述】:
我正在尝试使用 MinGW 编译器在 Qt 中使用 C++ 创建一个简单的 GUI 应用程序(到目前为止)。但是,编译器通知我在line 4 的wiimotescouter.cpp 上有一个multiple definition of 'WiimoteScouter::WiimoteScouter(QWidget*)'。我正在使用检查以确保没有多次包含标题,但显然它不起作用,我不确定为什么。
这是头文件:
#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 文件?并且发布完整的错误消息也会有所帮助。
-
为什么你的 C++ 项目中有 .php 文件? 0_o
-
我的错误将它复制到这里,它是一个 .cpp,我习惯于使用 PHP。 ;)
标签: c++ qt multiple-definition-error