JoelH
16-09-2002, 11:28
Ich hab hier ein Buch zu KDE 2 (M&T KDE2 programmierung)'leider' benutz ich KDE3 mit QT3.0.3 naja und ich hab da ein läppische Beispiel bekomem es aber nicht zum laufen :(
Fehlermeldung =>
[root@joels listings]# g++ -o myprog main.o mywindow.o -L$QTDIR/lib -L$KDEDIR -lkdeui -lkdecore -lqt
mywindow.o: In function `MyWindow::qt_invoke(int, QUObject *)':
mywindow.o(.text+0x1a7): undefined reference to `MyWindow::slotButton(void)'
collect2: ld returned 1 exit status
Die Programme sollten aebr richtig sein, hab keinen Fehelr darin gefunden =>
mywindow.h
#include <qwidget.h>
#include <qpushbutton.h>
class MyWindow : public QWidget
{
Q_OBJECT
public:
MyWindow();
public slots:
void slotButton();
private:
QPushButton *button;
};
mywindow.cpp
#include "mywindow.moc"
#include <iostream.h>
MyWindow::MyWindow() : QWidget()
{
button = new QPushButton("Drück mich", this);
button->setGeometry(10,10,100,40);
button->show();
connect(button, SIGNAL(clicked()), this, SLOT(slotButton()));
}
void slotButton()
{
cout << "Du hast mich gedrückt" << endl;
}
main.cpp
#include <kapp.h>
#include "mywindow.h"
int main(int argc, char **argv)
{
KApplication app(argc, argv, "moc-test");
MyWindow window;
window.setGeometry(100,100,200,100);
window.setCaption("Aha!");
app.setMainWidget(&window);
window.show();
return app.exec();
}
die moc Datei erzeügen geht =>
mywindow.moc der asschnitt mit dem Fehler =>
bool MyWindow::qt_invoke( int _id, QUObject* _o )
{
switch ( _id - staticMetaObject()->slotOffset() ) {
case 0: slotButton(); break;
default:
return QWidget::qt_invoke( _id, _o );
}
return TRUE;
}
was ist da das Problem ?
kopiliert hab ich das so =>
g++ -I$QTDIR/include -I$KDEDIR -c main.cpp
moc mywindow.h -o mywindow.moc
g++ -I$QTDIR/include -I$KDEDIR -c mywindow.cpp
das funzt alles aber dann beim linken der Objektdateinen gehts eben nimmer :(
Fehlermeldung =>
[root@joels listings]# g++ -o myprog main.o mywindow.o -L$QTDIR/lib -L$KDEDIR -lkdeui -lkdecore -lqt
mywindow.o: In function `MyWindow::qt_invoke(int, QUObject *)':
mywindow.o(.text+0x1a7): undefined reference to `MyWindow::slotButton(void)'
collect2: ld returned 1 exit status
Die Programme sollten aebr richtig sein, hab keinen Fehelr darin gefunden =>
mywindow.h
#include <qwidget.h>
#include <qpushbutton.h>
class MyWindow : public QWidget
{
Q_OBJECT
public:
MyWindow();
public slots:
void slotButton();
private:
QPushButton *button;
};
mywindow.cpp
#include "mywindow.moc"
#include <iostream.h>
MyWindow::MyWindow() : QWidget()
{
button = new QPushButton("Drück mich", this);
button->setGeometry(10,10,100,40);
button->show();
connect(button, SIGNAL(clicked()), this, SLOT(slotButton()));
}
void slotButton()
{
cout << "Du hast mich gedrückt" << endl;
}
main.cpp
#include <kapp.h>
#include "mywindow.h"
int main(int argc, char **argv)
{
KApplication app(argc, argv, "moc-test");
MyWindow window;
window.setGeometry(100,100,200,100);
window.setCaption("Aha!");
app.setMainWidget(&window);
window.show();
return app.exec();
}
die moc Datei erzeügen geht =>
mywindow.moc der asschnitt mit dem Fehler =>
bool MyWindow::qt_invoke( int _id, QUObject* _o )
{
switch ( _id - staticMetaObject()->slotOffset() ) {
case 0: slotButton(); break;
default:
return QWidget::qt_invoke( _id, _o );
}
return TRUE;
}
was ist da das Problem ?
kopiliert hab ich das so =>
g++ -I$QTDIR/include -I$KDEDIR -c main.cpp
moc mywindow.h -o mywindow.moc
g++ -I$QTDIR/include -I$KDEDIR -c mywindow.cpp
das funzt alles aber dann beim linken der Objektdateinen gehts eben nimmer :(