[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


Anmelden zum Antworten