[QT4]Moc erzeugt fehlerhafte Datei
-
Guten Mittag.
Ich versuche gerade mit Code::Blocks eine QT4-GUI mit Signals/Slots zu erstellen.
Vor dem Kompillieren lasse ich die moc_Taschenrechner.h mit moc und Taschenrechner.h erstellen. Allerdings kriege ich dadurch beim Kompillieren folgende Fehler:||=== QT_lernen, Debug ===| obj\Debug\Taschenrechner.o:D:\Programme\QT\qt\include\QtCore\..\..\src\corelib\global\qglobal.h|1368|multiple definition of `Taschenrechner::metaObject() const'| obj\Debug\main.o:C:\Users\Benutzername\Desktop\C++\test\QT_lernen\moc_Taschenrechner.h|53|first defined here| obj\Debug\Taschenrechner.o:C:\Users\Benutzername\Desktop\C++\test\QT_lernen\moc_Taschenrechner.h|58|multiple definition of `Taschenrechner::qt_metacast(char const*)'| obj\Debug\main.o:C:\Users\Benutzername\Desktop\C++\test\QT_lernen\moc_Taschenrechner.h|58|first defined here| obj\Debug\Taschenrechner.o:C:\Users\Benutzername\Desktop\C++\test\QT_lernen\moc_Taschenrechner.h|68|multiple definition of `Taschenrechner::qt_metacall(QMetaObject::Call, int, void**)'| obj\Debug\main.o:C:\Users\Benutzername\Desktop\C++\test\QT_lernen\moc_Taschenrechner.h|68|first defined here| ||=== Build finished: 6 errors, 0 warnings ===|
Hier sind die Files:
Main.cpp#include "moc_Taschenrechner.h" #include <QApplication> int main( int argc, char* argv[]) { QApplication a(argc, argv); Taschenrechner w; w.show(); return a.exec(); }
Taschenrechner.cpp
#include "moc_Taschenrechner.h" Taschenrechner::Taschenrechner(QMainWindow *parent) : QMainWindow(parent){ setupUi(this); lineEdita -> setText("0"); lineEditb -> setText("0"); connect(pushButton, SIGNAL(clicked()), this, SLOT(calc())); } Taschenrechner::~Taschenrechner(){ } void Taschenrechner::calc() { }
Taschenrechner.h
#ifndef TASCHENRECHNER_H #define TASCHENRECHNER_H #include "ui_Taschenrechner.h" class Taschenrechner : public QMainWindow, public Ui::MainWindow{ Q_OBJECT public: Taschenrechner (QMainWindow *parent = 0); ~Taschenrechner(); private slots: void calc(); }; #endif //TASCHENRECHNER_H
moc_Taschenrechner.h
/**************************************************************************** ** Meta object code from reading C++ file 'Taschenrechner.h' ** ** Created: Fri 27. Aug 19:12:56 2010 ** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ #include "Taschenrechner.h" #if !defined(Q_MOC_OUTPUT_REVISION) #error "The header file 'Taschenrechner.h' doesn't include <QObject>." #elif Q_MOC_OUTPUT_REVISION != 62 #error "This file was generated using the moc from 4.6.3. It" #error "cannot be used with the include files from this version of Qt." #error "(The moc has changed too much.)" #endif QT_BEGIN_MOC_NAMESPACE static const uint qt_meta_data_Taschenrechner[] = { // content: 4, // revision 0, // classname 0, 0, // classinfo 1, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors 0, // flags 0, // signalCount // slots: signature, parameters, type, tag, flags 16, 15, 15, 15, 0x08, 0 // eod }; static const char qt_meta_stringdata_Taschenrechner[] = { "Taschenrechner\0\0calc()\0" }; const QMetaObject Taschenrechner::staticMetaObject = { { &QMainWindow::staticMetaObject, qt_meta_stringdata_Taschenrechner, qt_meta_data_Taschenrechner, 0 } }; #ifdef Q_NO_DATA_RELOCATION const QMetaObject &Taschenrechner::getStaticMetaObject() { return staticMetaObject; } #endif //Q_NO_DATA_RELOCATION const QMetaObject *Taschenrechner::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; } void *Taschenrechner::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_Taschenrechner)) return static_cast<void*>(const_cast< Taschenrechner*>(this)); if (!strcmp(_clname, "Ui::MainWindow")) return static_cast< Ui::MainWindow*>(const_cast< Taschenrechner*>(this)); return QMainWindow::qt_metacast(_clname); } int Taschenrechner::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: calc(); break; default: ; } _id -= 1; } return _id; } QT_END_MOC_NAMESPACE
Die ui_Taschenrechner hab ich weggelassen...
Entschuldigung wenn ich jetzt die alten Hasen in diesem Forum mit völlig unnötigen Anfängerfragen belästige, aber ich komm einfach nicht weiter. Ich hab mich jetzt ungefähr 5-6 Stunden mit dem Kompillieren eines einfachen Beispiels befasst und hänge jetzt wieder fest.
€dit: Hat sich mithilfe von einem anderen Forum erledigt.
mit freundlichen grüssen