*
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