C++ Qt-Mehrere Definitionen
Ich versuche zu schaffen, eine einfache GUI-Anwendung (bisher) in Qt mit C++, MinGW-compiler. Jedoch ist der compiler in dem er mir mitteilte, dass ich eine multiple definition of 'WiimoteScouter::WiimoteScouter(QWidget*)'
auf line 4
von wiimotescouter.cpp
. Ich bin durch einen check, um sicherzustellen, dass die Kopfzeile nicht enthalten mehrfach, aber anscheinend funktioniert es nicht, und ich bin nicht sicher, warum.
Hier ist die header-Datei:
#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
Und hier ist der cpp-Datei:
#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"));
}
Schließlich die main.cpp:
#include <QtGui>
#include "wiimotescouter.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
WiimoteScouter wiimoteScouter;
wiimoteScouter.show();
return app.exec();
}
Das klingt mehr wie ein linker-Fehler statt eines Compilers. Sie haben mehr als eine .cpp-Datei in Ihrem .pro Datei? Und posten Sie die komplette Fehlermeldung, die helfen würde, zu.
Warum macht Ihr C++ - Projekt haben .php-Dateien? 0_o
Mein Fehler, kopieren Sie es hier ein .cpp, bin ich verwendet, um mit PHP zu arbeiten. 😉
Warum macht Ihr C++ - Projekt haben .php-Dateien? 0_o
Mein Fehler, kopieren Sie es hier ein .cpp, bin ich verwendet, um mit PHP zu arbeiten. 😉
InformationsquelleAutor John M. | 2011-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gesehen, das geschehen vor, wenn eine Quelldatei habe mal in das Projekt (.pro oder .pri-Datei). Prüfen Sie alle der "SOURCES =" und "SOURCES + =" - Zeilen in Ihr Projekt-Datei, und stellen Sie sicher, dass der cpp-Datei nicht mehr als einmal dort.
InformationsquelleAutor jwernerny
Verwende ich nicht, MinGW, aber das klingt wie ein linker-Fehler, anstatt zu einem compiler-Fehler. Wenn dies der Fall ist, dann sollten Sie überprüfen, dass die .CPP-Datei nicht zum Projekt Hinzugefügt zweimal. Mir ist auch aufgefallen, dass die Erweiterung "php", das ist sehr ungewöhnlich, wie es sein sollte "cpp".
InformationsquelleAutor Steve
Dies kann auch passieren, wenn man zwei haben .ui-Dateien mit dem gleichen Namen in unterschiedlichen Ordnern. Ihre entsprechenden Header gebaut sind, in das gleiche Verzeichnis, was in einem nicht überschrieben werden. Das war zumindest mein problem.
InformationsquelleAutor Assimilater
Beantworten, nur für Referenz:
Ich war auch
statt
InformationsquelleAutor Hecvd
Habe ich diese Fehlermeldung hatte, wenn ich meinem Schlitz aufgeführten Erklärungen aufgeführt, die unter die Signale, die überschrift in der header-Datei, sondern die slots. Eine andere Sache, für die jemand erlebt diese Fehlermeldung zu überprüfen.
Ausschneiden und einfügen gelöst das problem und die Notwendigkeit zu überprüfen, das nächste mal, wenn ich Slots manuell.
InformationsquelleAutor user1408605
War es für mich aufgrund der Qt-compilation-Modell in Windows unter Verwendung von MinGW.
Mein code kompiliert völlig in Ordnung für Linux, aber für Windows-linker-Fehler passiert ist für die folgenden Dateien:
Zuerst in .pro-Datei, die ich nicht finden konnte alle ähnliche Namen. Dann beobachten sehr ich herausgefunden, dass die externen google protobuf-Bibliothek, die ich zusammenstellen wollte, zusammen, hatte einige library-Dateien in seinem Ordner mit dem Namen:
Den Fällen und die Erweiterungen waren anders, aber irgendwie erstellt es Chaos in der Qt-Zusammenstellung. Ich habe gerade einen Unterstrich, um diejenigen, Bibliothek-Dateien und die Dinge, die gut geklappt hat.
InformationsquelleAutor iammilind